0

次の SQL ステートメントは、PRINT では確かな結果を示していますが、EXEC では、'REPLACE' 付近の構文が正しくありません

USE EPDB

DECLARE @Table as nvarchar(100)
DECLARE @Column as nvarchar(100)
DECLARE @Select as nvarchar(375)
DECLARE @Where as nvarchar(275)

SET @Table = 'TableABC'
SET @Column = 'ColumnABC'`enter code here`
SET @Select = 'SELECT * FROM INFORMATION_SCHEMA.COLUMNS'
SET @Where = 'CRITERIA = ''VALUE'''


-- EXEC ('SELECT * FROM INFORMATION_SCHEMA.COLUMNSWHERETABLE_NAME = ' + @Table + '''')

PRINT @Select + ' WHERE ' + REPLACE(REPLACE(@Where,'CRITERIA','TABLE_NAME'),'VALUE',@Table)

EXEC (@Select + ' WHERE ' + REPLACE(REPLACE(@Where,'CRITERIA','TABLE_NAME'),'VALUE',@Table))

ここで何が起こっているのかわからない

4

1 に答える 1

2

これを試して:

DECLARE @sSQL varchar(1000)

SET @sSQL = @Select + ' WHERE ' + REPLACE(REPLACE(@Where,'CRITERIA','TABLE_NAME'),'VALUE',@Table)

EXEC (@sSQL)

EXEC() は文字列変数または文字列定数のいずれかを受け入れますが、組み合わせは受け入れないと思います。

于 2013-10-08T20:32:08.867 に答える