sql - 使用内联SQL更新语句

标签 sql sql-server sql-server-2008 syntax-error

这种语法一直给我一个无效的列。我要做的就是将值插入表中。我应该如何更改语法以使其成为可能?这是出现的错误。

Msg 207, Level 16, State 1, Line 1
Invalid column name 'Alpha12'.



码:
Declare @vector varchar(25), @sql varchar(max)
Set @vector = 'Alpha12'

Create Table #Test (vector varchar(50))     

Set @sql = 'Update  #Test '
       + 'set vector = coalesce(''' + @vector + ''', '''')'

Print @sql
Exec (@sql)

Select * from #Test

Drop Table #Test

最佳答案

您应该使用单引号对插入的varchar变量@vector进行转义,并使用insert代替update语句:

set @sql = 'insert into  #Test '
         + 'values (coalesce(''' + @vector + ''', ''''))'

SQLFiddle

关于sql - 使用内联SQL更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967310/

相关文章:

mysql - 我怎样才能得到 'order by'非标准化列?并复合排序依据

sql-server - SQL Server 探查器 : capture calls to your database's stored procs during SSRS report generation

mysql - 从两个没有主键但sql中相同的三列字段的表中选择

SQL 更新查询 - 聚合可能不会出现在 UPDATE 语句的集合列表中

sql-server-2008 - 为什么在 SQL 中插入 *

sql - 我重命名了我的列以包含表名。为什么我不能重命名它了?

mysql - 函数有问题

sql - SQL 中的表别名歧义是标准禁止的还是被实现阻止的?

sql-server - TempDB性能爬取;我们应该重新启动吗?

sql-server - 针对 400 万条记录的两个截然不同的查询同时执行 - 其中一个使用暴力破解