【问题标题】:SQL Server, Advanced Scaping quotesSQL Server,高级 Scaping 引号
【发布时间】:2014-06-06 21:21:12
【问题描述】:

我在尝试创建一个使用动态查询和参数的过程时遇到了一些麻烦。 我正在使用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''
''
'

有人可以帮我吗? 非常感谢!

【问题讨论】:

    标签: sql escaping quotes


    【解决方案1】:

    不确定您想对 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''
    '
    

    【讨论】:

      猜你喜欢
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      相关资源
      最近更新 更多