現在、SQL Serverで初めてstoredprocを使用しようとしています...
現在、CMS のインストールに使用するデータベースのコピーを作成する単純なストアド プロシージャがあります。
変数がすべてスクリプトにハードコードされていれば、ストアド プロシージャは非常にうまく機能しています。
必要なことは、storedproc に 1 つの変数を適用することだけですが、それを実行しようとするたびに、スカラー変数 @dsource が定義されていないことを示すエラーが生成されます。
また、変数をストアドプロシージャの文字列の一部として適用する方法もよくわからないので、どんな助けも大歓迎です
基本的に、@dsource パラメータを定義して文字列内で使用する必要があるため、この特定の変数で必要なディレクトリ パスを変更できます。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE PROCEDURE one_installer
-- Add the parameters for the stored procedure here
@dsource
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
BACKUP DATABASE base_db
TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\base_db.bak' WITH FORMAT
RESTORE FILELISTONLY FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\base_db.bak'
RESTORE DATABASE @dsource
FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\base_db.bak'
WITH
MOVE 'base_db' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\' dsource '.mdf',
MOVE 'base_db_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\' dsource '_log.ldf'
END
GO