sp_executesql;消息102,级别15附近的语法不正确

时间:2018-01-10 12:36:46

标签: sql-server tsql stored-procedures

我一直在寻找一段时间,但仍然无法找到答案。 我试图使用一个非常简单的存储过程sp_executesql来创建数据库或表。

    exec sp_executesql
     N'create database @d',
     N'@d nvarchar(1)',
     @d = 'a';

或者

    exec sp_executesql 
    N'create table @d',
    N'@d nvarchar(9)',
    @d=N'MyTable'

不断收到此消息:

Msg 102,Level 15,State 1,Line 1 '@d'附近的语法不正确。

我不明白为什么?

1 个答案:

答案 0 :(得分:1)

在这种情况下,SQL Server不接受变量。请参阅此处了解选项:

How to use a variable for the database name in T-SQL?