消息2812:"使用动态脚本创建表"

Rom*_*esh 1 sql sql-server dynamic-tables sql-server-2008

我想用动态SQL创建一个表.

如果我使用创建表

CREATE Table TodayTemp(id varchar(20))
DROP TABLE TodayTemp
Run Code Online (Sandbox Code Playgroud)

那就没问题了.它工作正常.但是使用它的问题是我无法动态创建列.因此,我尝试在变量中使用存储创建脚本,然后最终使用EXEC命令执行它们.

喜欢

Declare @CreateTableCmd varchar(max)
SET @CreateTableCmd = 'CREATE Table TodayTemp(id varchar(20))'
Exec @CreateTableCmd
Run Code Online (Sandbox Code Playgroud)

但这会导致错误

消息2812,级别16,状态62,行6
无法找到存储过程'CREATE Table TodayTemp(id varchar(20))'.

jue*_*n d 5

执行时在变量周围添加括号

Declare @CreateTableCmd varchar(max)
SET @CreateTableCmd = 'CREATE Table TodayTemp (id varchar(20))'
Exec (@CreateTableCmd)
     ^---------------^--------here
Run Code Online (Sandbox Code Playgroud)

SQLFiddle演示