0

我想用我作为参数传递的列名和列值来更新存储过程中的一个条目,我该怎么做。

4

2 回答 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 回答