テーブルとプロシージャのセットをプログラムで新しいデータベースに取り込みたいとします。ダイナミックSQLで最近作成したデータベースの内部にテーブルを作成する方法は?
私は初期化スクリプトを用意しました。新しいデータベースを作成する必要があるプロシージャ内で使用します。
Iは、単純な例を試して動作しませんでした:
CREATE PROCEDURE PROCEDURETOREPLICATECOMMONSCHEMA
@databaseName NVARCHAR(40)
AS
BEGIN
DECLARE @sqlCreation NVARCHAR(MAX);
SET @sqlCreation = '
USE MASTER;
EXEC(''CREATE DATABASE ' + @databaseName + ''');
EXEC(''USE ' + @databaseName + ''');
CREATE TABLE Testing
(
TestPk int,
TestDescription nvarchar(80)
);
';
PRINT @sqlCreation;
EXEC sp_executesql @sqlCreation;
END
GO
私はこの手順を実行すると、それはマスターデータベースの代わりにTestDatabase1
内部テーブルTesting
を作成します。
EXEC PROCEDURETOREPLICATECOMMONSCHEMA 'TestDatabase1'
GO