トップ回答者
カーソル変数を使用してデータベースの作成をしたい

質問
-
いつもお世話になっております。
SQL Server2000を使用して、データベースを作成しているのですが、
データベース名やファイルのパスなどをカーソル変数を使用して
設定したいと考えています。自分なりにやってみたのですが、
どうしても構文エラーとなってしまいます。普通に作成する分には問題ないので、カーソル変数の使用方法が間違っているのだと思います。
(カーソル変数を使用しなければ、うまくいきます。)
以下が作成したSQLです。
Code SnippetDECLARE @DATABASE_PATH nvarchar(256)
DECLARE @DATABASE_NAME nvarchar(256)SET @DATABASE_PATH = 'C:\Sample\'
SET @DATABASE_NAME = 'Sample'
CREATE DATABASE @DATABASE_NAME
--↑Sampleデータベースを作成したいと考えています。
ON
( NAME = @DATABASE_NAME + '_dat',
--↑Sample_datと設定したいです。
FILENAME = @DATABASE_PATH + @DATABASE_NAME + '_dat.mdf'
--↑C:\Sample\Sample_dat.mdfと設定したいです。
)
LOG ON
( NAME = @DATABASE_NAME + '_log',
--↑Sample_logと設定したいです。
FILENAME = @DATABASE_PATH + @DATABASE_NAME + '_dat.mdf'
--↑C:\Sample\Sample_log.ldfと設定したいです。
)
http://msdn.microsoft.com/ja-jp/library/ms176061.aspx
上記ページを参考に作成してみたのですが、
うまく理解できませんでした。もしよろしければ、アドバイス頂けませんか?
よろしくお願い致します。
回答
すべての返信
-
ありがとうございます。
とても分かりやすかったです。
正直試行錯誤しながらSQLは作成しましたが、
うまく理解しきれていなかったので、とても助かりました。
ご教示頂いた方法でSQLを作成しました。
Code SnippetDECLARE @Query VARCHAR(8000)
DECLARE @DATABASE VARCHAR(256)
DECLARE @DATA_PATH VARCHAR(256)SET @DATABASE = 'SAMPLE'
SET @DATA_PATH = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\'
--> CREATE DATABASE文の組み立て
SET @Query =
'CREATE DATABASE ' + @DATABASE +
' ON
( NAME = ' + @DATABASE + '_dat,
FILENAME = ''' + @DATA_PATH + @DATABASE + '_dat.mdf''
)
LOG ON
( NAME = ' + @DATABASE + '_log,
FILENAME = ''' + @DATA_PATH + @DATABASE + '_log.ldf''
)'
--< ここまで--クエリの実行
EXECUTE( @Query )とても参考になりました。
ありがとうございます。