पैरामीटर के साथ ऐसा करना संभव नहीं है। इसे प्राप्त करने के लिए आपको गतिशील क्वेरी बनाने की आवश्यकता होगी।
डायनेमिक SQL का उपयोग करने वाली खरीद इस तरह दिखेगी:
create procedure MyProc
(
@ColumnName varchar(100),
@ColumnValue varchar(100),
@MH_Description varchar(100)
)
as
begin
declare @Query nvarchar(4000)
declare @ParmDefinition nvarchar(500);
set @Query = '
insert into Tablename(' + quotename(@ColumnName) +',Description)
values (@ColumnValue, @MH_Description)'
set @ParmDefinition = N'@ColumnValue varchar(100), @MH_Description varchar(100)'
exec sp_executesql @Query, @ParmDefinition, @ColumnValue = @ColumnValue, @MH_Description = @MH_Description
end
[संपादित करें] अपने दूसरे प्रश्न का उत्तर दें। इसे दो के बजाय एक प्रश्न बनाएं
set @Query = '
if exists(select * from tbl_temp where '+quotename(@ColumnName)+' = @ColumnValue)
update tbl_temp set' + quotename(@ColumnName) +' = @ColumnValue, [email protected]
else
insert into tbl_temp(' + quotename(@ColumnName) +',Description)
values (@ColumnValue, @Description)'