sql - 将整个sql脚本插入变量中

标签 sql sql-server tsql

我在变量中插入 sql 脚本时遇到问题。我有这段代码

   declare @result_var varchar(max);
SET @result_var=''; 
DECLARE @cursor CURSOR, 
@name   VARCHAR(100) 
SET @cursor = CURSOR 
FOR SELECT [NAME] 
    FROM   [iflvs08].mds.mdm.lv_budget_employee
OPEN @cursor
FETCH next FROM @cursor INTO @name 
WHILE @@FETCH_STATUS = 0 
  BEGIN 
      IF (RIGHT(@Name, 1) = ' ')
        begin
            IF( Len(@result_var) > 1 ) 
              SET @result_var=@result_var + ','+ @name 
            ELSE 
              SET @result_var=@name 
        END
      FETCH next FROM @cursor INTO @name 
  END

我想将其插入变量,但是当尝试像这样插入它时

set @sql='code here'

这个 ' 符号会让人感到困惑,不要插入它 我总是收到这样的错误 消息 102,第 15 级,状态 1,第 13 行 ' 附近的语法不正确 开始 IF( Len(@result_var) > 1 ) SET @result_var=@result_var + '.

最佳答案

基本上,您必须将所有 ' 符号替换为 ''

set @sql = '

  declare @result_var varchar(max);
SET @result_var=''''; 
DECLARE @cursor CURSOR, 
@name   VARCHAR(100) 
SET @cursor = CURSOR 
FOR SELECT [NAME] 
    FROM   [iflvs08].mds.mdm.lv_budget_employee
OPEN @cursor
FETCH next FROM @cursor INTO @name 
WHILE @@FETCH_STATUS = 0 
  BEGIN 
      IF (RIGHT(@Name, 1) = '' '')
        begin
            IF( Len(@result_var) > 1 ) 
              SET @result_var=@result_var + '',''+ @name 
            ELSE 
              SET @result_var=@name 
        END
      FETCH next FROM @cursor INTO @name 
  END'

关于sql - 将整个sql脚本插入变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29302807/

相关文章:

html - 更改 SQL Server 数据库邮件中值的颜色

sql - 如何将此正则表达式转换为 like 子句

sql - <> "~"在SQL中是什么意思

c# - 如何在Azure中指定上传和导出功能的路径

sql - 关联表的递归自查询 (SQL Server)

sql - 创建 Sql 查询的设计模式

mysql BETWEEN 对字符的权利是独占的吗?

MYSQL - 没有结果时如何显示 0?

SQL Server - 遇到 0 时重置的累积总和

sql-server - 按第一列分组,然后拆分(透视?)剩余两列