首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >T-SQL变量在@tableName附近显示不正确的语法

问T-SQL变量在@tableName附近显示不正确的语法
EN

Stack Overflow用户
提问于 2016-06-12 14:34:09
回答 1查看 1.2K关注 0票数 1

它显示了一个错误,当尝试运行以下操作时

代码语言:javascript
复制
declare  @tableName VARCHAR(250)

select @tableName='['+SCHEMA_NAME(schema_id)+'].['+name+']'

FROM sys.tables
WHERE '['+SCHEMA_NAME(schema_id)+'].['+name+']'='[Management].[Table_1]'

print @tableName

TRUNCATE table @tableName

“@tableName”附近语法不正确。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-12 14:35:45

这是正确的。不能使用变量传递表名。

您可以使用动态SQL:

代码语言:javascript
复制
declare @sql nvarchar(max);
set @sql = replace('TRUNCATE table @tableName', '@tableName', @tableName);

exec sp_executesql @sql;

SQL语句允许具有常量参数,但不允许具有标识符参数。这不仅是Server的限制,而且是(?)数据库。动态sql经常用于此目的。

执行者

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37775426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档