日期:2014-05-19  浏览次数:20408 次

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