Reputation: 7601
I want to update an entry in Stored Procedure with the column name and column value that I pass as parameter, how can I do it.
Upvotes: 0
Views: 1365
Reputation: 166566
For something like that you will need to use Dynamic SQL
Something like
CREATE TABLE #Test(
ID INT,
Val VARCHAR(20)
)
INSERT INTO #Test SELECT 1, '2'
SELECT *
FROM #Test
DECLARE @ColumnName VARCHAR(MAX),
@ParamValue VARCHAR(MAX),
@Lookup INT
SELECT @ColumnName = 'Val',
@ParamValue = 'tada',
@Lookup = 1
DECLARE @SQL VARCHAR(MAX)
SELECT @SQL = 'UPDATE #Test SET ' + @ColumnName + ' = ''' + @ParamValue + ''' WHERE ID = ' + CAST(@Lookup AS VARCHAR(MAX))
EXEC (@SQL)
SELECT *
FROM #Test
DROP TABLE #Test
Upvotes: 2
Reputation: 623
try with this
IF @COLUMNNAMEVALUEVARCHAR <> '' OR @COLUMNNAMEVALUEVARCHAR is not NULL
IF @COLUMNNAMEVALUEFLOAT <> '' OR @COLUMNNAMEVALUEFLOAT is not NULL
Upvotes: 0