【发布时间】:2016-12-14 20:46:51
【问题描述】:
我正在尝试使用 sp_executesql 在 T-SQL 中创建一个表。包含表的数据库名称是动态的。
DECLARE @ID int = 1031460
DECLARE @TableName nvarchar(max) = '[MyDatabase' + CAST(@ID as nvarchar(10)) + '].[dbo].[MyTable]'
DECLARE @CreateTable nvarchar(max) = N''
SELECT @CreateTable =
N'
CREATE TABLE @TableName
(
ID int
)
'
EXECUTE sp_executeSQL @CreateTable, N'@TableName nvarchar(max)', @TableName = @TableName
此脚本导致此错误:
消息 102,第 15 级,状态 1,第 2 行
“@TableName”附近的语法不正确。
根据sp_executeSQL的参数指定要动态创建的表名的最佳方法是什么?
【问题讨论】:
标签: sql sql-server tsql create-table sp-executesql