我想用我作为参数传递的列名和列值来更新存储过程中的一个条目,我该怎么做。
问问题
1325 次
2 回答
2
对于类似的事情,您将需要使用动态 SQL
就像是
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
于 2012-09-13T04:34:44.667 回答
0
试试这个
IF @COLUMNNAMEVALUEVARCHAR <> '' OR @COLUMNNAMEVALUEVARCHAR is not NULL
IF @COLUMNNAMEVALUEFLOAT <> '' OR @COLUMNNAMEVALUEFLOAT is not NULL
于 2012-09-13T04:29:25.690 回答