我试图搜索一些帖子,但我没有幸运地发现我的情景:
这是我的尝试,但没有运气。
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的'
任何建议都将受到赞赏。
提前致谢。
答案 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