内联更新语句 SQL
Update Statement with Inline SQL
这个语法总是给我一个无效的列。我想要做的就是将值插入 table。我应该如何更改我的语法以使其成为可能?这是出现的错误。
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 + ''', ''''))'
有必要使用Exec
动态SQL吗?这是有风险的,因为它会启用 sql 注入。
为什么Insert语句不能正常执行:
Insert into #Test
Values (Coalesce(@vector,''))
这个语法总是给我一个无效的列。我想要做的就是将值插入 table。我应该如何更改我的语法以使其成为可能?这是出现的错误。
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 + ''', ''''))'
有必要使用Exec
动态SQL吗?这是有风险的,因为它会启用 sql 注入。
为什么Insert语句不能正常执行:
Insert into #Test
Values (Coalesce(@vector,''))