如何在SQL中使用select into执行execute语句

时间:2017-05-18 00:55:55

标签: sql-server

我试图搜索一些帖子,但我没有幸运地发现我的情景:

这是我的尝试,但没有运气。

declare @tb varchar(30)
set @tb = 'newtablename'
declare @sql varchar(30) = 'select * into ' + @tb + ' from tbl_3;'
EXEC  sp_executesql  @sql

它会返回错误

  

程序需要参数' @ statement'类型   ' NTEXT / NCHAR / nvarchar的'

任何建议都将受到赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您已将@tb@sql变量声明为varchar(30)类型。该错误明确警告它需要ntext,nchar或nvarchar。此外,您的@sql字符串将被截断为30.我建议您将代码更改为以下内容:

declare @tb nvarchar(30)
set @tb = 'newtablename'
declare @sql nvarchar(255) = 'select * into ' + @tb + ' from tbl_3;'
EXEC  sp_executesql  @sql