2016-07-03 6 views
0

トリガーを使用してバックアップデータベースを作成します。私はこのクエリを書くときトリガーを使用してデータベースをバックアップする

CREATE TRIGGER test 
ON Table_1 
INSTEAD OF INSERT, UPDATE, DELETE 
AS 
    BACKUP DATABASE test 
    TO DISK = 'C:\test.bak' WITH DIFFERENTIAL, 
    NAME = N'pcrm-Full Database Backup', 
    SKIP, NOREWIND, NOUNLOAD, STATS = 50 
GO 

は、私は、エラーメッセージが表示されます。

メッセージ3021、レベル16、状態0、プロシージャsptestの、6行目
を バックアップを実行するか、トランザクション内での操作を復元することはできません。

レベル16、状態1、プロシージャSPTEST、行6
BACKUP DATABASEが異常終了しています。

くれ

+1

を助けてください、私は、SQL Serverの第一人者ないんだけど、このエラーメッセージは、トリガー内 'BACKUPのDATABASE'呼び出すことができないと言っているように見えます。 –

+5

[SQL Server 2008のトリガでバックアップを使用する方法](http://stackoverflow.com/questions/3609119/how-to-use-backup-with-triggers-in-sql-server-2008) –

+2

なぜあなたはそれをとにかく望みますか?バックアップは、データ変更の結果ではなく、保守計画の一部でなければなりません。 –

答えて

0
CREATE TRIGGER test 
    ON Table_1 
    AFTER INSERT 
AS 
BEGIN 
    COMMIT TRANSACTION 
     BACKUP DATABASE test TO DISK = N'C:\test.bak' WITH NOFORMAT, NOINIT, NAME = N'pcrm-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 
    BEGIN TRANSACTION 
END 
GO 
+0

解決策を説明できますか? – user7294900

関連する問題