读书人

动态SQL语句,插入时报错,该怎么解决

发布时间: 2012-02-25 10:01:48 作者: rapoo

动态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 + ' ' ') '

读书人网 >SQL Server

热点推荐