SQL Server,Advanced Scaping引用

时间:2014-04-22 13:11:13

标签: sql escaping quotes

我在尝试创建使用动态查询和参数的过程时遇到了一些麻烦。 我使用sp_msforeachdb并且它接收一个参数作为字符串,这个字符串是动态的并且包含一些其他字符串......

澄清一下,这是我的例子:

SET @vTableName = '##temp_table_' + convert(NVARCHAR(8), getdate(),112)

SET @vQuery = ' sp_msforeachdb 
    ''use ? IF db_name() LIKE (''%_BASE'')

    INSERT INTO ''+@vTableName+'' 
         SELECT *
           FROM elements 
                WHERE identifier = ''P''
''
'

有人能帮帮我吗? 非常感谢!

1 个答案:

答案 0 :(得分:0)

不确定您要对use语句做什么,但修改了一些引号。

DECLARE @vTableName varchar(2000)
DECLARE @vQuery varchar(2000)
SET @vTableName = '##temp_table_' + convert(NVARCHAR(8), getdate(),112)

SET @vQuery = ' sp_msforeachdb 
    ''use ? IF db_name() LIKE (''%_BASE'')

    INSERT INTO '+@vTableName+' 
         SELECT *
           FROM elements 
                WHERE identifier = ''P''
'