0
 Use master 
    GO
    Declare @dbName As VARCHAR(50)
    SET @dbName = 'TestDB'
    CREATE DATABASE @dbName

上記の sqlserver is script でエラーが発生しています。なんで?

Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '@dbName'.
4

2 に答える 2

1

動的 sql と ddl を混在して使用することはできません。動的 sql を使用します。このコードを試してください:

Use master 
    GO
    Declare @dbName As VARCHAR(50) 
    DECLARE @Q VARCHAR(MAX)
    SET @dbName = 'TestDB'
    SET @Q='CREATE DATABASE '+ @dbName
    EXEC(@Q)
于 2013-11-14T09:44:07.333 に答える
0

VARCHAR タイプを渡していてデータベースを作成するために機能しない場合は、Varchar の代わりにオブジェクトを使用します。それ以外の場合は、クエリ全体を文字列として実行に渡す必要があります。

Declare @dbName As VARCHAR(50) = 'TestDB'
DECLARE @Creation VARCHAR(50) ='CREATE DATABASE '+ @dbName 
EXEC(@Creation)
于 2013-11-14T10:50:02.810 に答える