パラメータとして渡す列名と列値を使用して、ストアド プロシージャのエントリを更新したいのですが、どうすればよいですか。
質問する
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 に答える