-1
dECLARE @LS_SQL CHAR(100)
dECLARE @SQL varCHAR(max)
SET @LS_SQL=ltrim('''STOCK IN HAND'',''STORE'',''PRODUCT''')

set @SQL='SELECT * FROM ITEM WHERE GROUPNAME IN(' + rtrim(@LS_SQL) + ')'
PRINT @SQL
execute @SQL

結果

SELECT * FROM ITEM WHERE GROUPNAME IN('STOCK IN HAND','STORE','PRODUCT') メッセージ 2812、レベル 16、状態 62、行 9 ストアド プロシージャが見つかりませんでした 'SELECT * FROM ITEM WHERE GROUPNAME IN('STOCK IN HAND','STORE','PRODUCT')'.

4

3 に答える 3

2

このコマンド

execute @SQL

手順を実行します。動的 SQL を実行する場合は、以下のコマンドを使用する必要があります。

exec (@SQL)

あなたも使うことができます

execute sp_sqlexec @SQL
于 2013-08-16T08:35:40.373 に答える
1

次のようにsp_executesqlを使用することをお勧めします。

exec sp_executesql @stmt = @SQL

ここで詳細なヘルプを参照できます動的 SQL - EXEC(@SQL) と EXEC SP_EXECUTESQL(@SQL) の比較

于 2013-08-16T08:36:14.143 に答える