动态SQL语句,插入时报错
create table t_test
(
t_t1 varchar(30),
t_t2 varchar(40)
)
go
declare @sql varchar(3000)
declare @t1 varchar(20)
declare @t2 varchar(30)
declare @tName varchar(50)
set @t1= 'a '
set @t2= 'b '
set @tName= 't_test '
set @sql = 'insert into ' + @tName + '(t_t1,t_t2) values ( ' + @t1 + ', ' + @t2 + ') '
exec(@sql)
错误:在此上下文中不允许使用 'a '。此处只允许使用常量、表达式或变量。不允许使用列名。
------解决方案--------------------改为:
set @sql = 'insert into ' + @tName + '(t_t1,t_t2) values ( ' ' ' + @t1 + ' ' ', ' ' ' + @t2 + ' ' ') '