変数名からデータベースを作成し、新しく作成されたデータベースを取得して .bak ファイルから復元する SQL スクリプトをセットアップしています。セットアップ中のコマンドの 1 つで構文に問題があり、構文エラーを見つけるのを手伝ってくれる人がいるかどうか尋ねたいと思いましたか? 問題のあるコードのスニペットとその宣言のみを貼り付けます。正しい場合、問題はファイル名パスを宣言する方法にあります。パスを変数に設定しようとしましたが、アポストロフィの配置が原因でエラーが発生しました。ありがとう!!!
declare @DBname varchar(10), @sqlcommand Nvarchar(max)
set @DBname = 'testdb'
データベースを作成し、新しいデータベースをシングル ユーザー モードに設定するコード
--restore database
set @sqlcommand = N'Restore DATAbase ' + @DBname + ' from disk = ''C:/loc_smartz_db0_template.bak'' with move '
+ @DBname + ' to ''C:/ProgramFiles/Microsoft SQL Server/MSSQL/Data/TestDatabase1.mdf'', move ' + @DBname + ' to ''C:/ProgramFiles/Microsoft SQL Server/MSSQL/Data/TestDatabase1.ldf'', Replace'
EXECUTE sp_executesql @sqlcommand
データベースをマルチユーザーに戻し、データベースが正常に作成されたことを出力するコード