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'.
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'.
動的 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)
VARCHAR タイプを渡していてデータベースを作成するために機能しない場合は、Varchar の代わりにオブジェクトを使用します。それ以外の場合は、クエリ全体を文字列として実行に渡す必要があります。
Declare @dbName As VARCHAR(50) = 'TestDB'
DECLARE @Creation VARCHAR(50) ='CREATE DATABASE '+ @dbName
EXEC(@Creation)