SQL Server上でT-SQLストアドプロシージャに取り組んでいます
をif-conditionがtrueの場合のみ、テーブルの更新でトリガを実行することができます。
-- table project
--CREATE TABLE [MySchema].[Project] (
-- ProjectId INT
-- , Label VARCHAR(1000)
--);
-- trigger
CREATE TRIGGER trgUpdate_Project
ON [MySchema].[Project]
FOR UPDATE
AS
BEGIN
IF UPDATE ([Label])
PRINT 'Label updated, version 1'
END
GO
-- stored procedure
CREATE PROCEDURE [MySchema].[SaveProject]
-- Importing Parameters
@IsVersion BIT
, @Label VARCHAR(1000)
AS
BEGIN
IF @IsVersion = 0 -- don't execute trigger
BEGIN
UPDATE [A]
SET [A].Label = 'lorem ipsum text'
FROM [MySchema].[Project] AS [A]
WHERE [A].ProjectId = '1'
END
IF @IsVersion = 1 -- execute Trigger
BEGIN
UPDATE [A]
SET [A].Label = @Label
FROM [MySchema].[Project] AS [A]
WHERE [A].ProjectId = '1'
END
END
@IsVersion = 1の場合、何とかトリガーを実行できますか?
どうすれば解決できますか...ありがとうございます!
は、ラベルがこれまでに 'Loremのイプサムのテキスト' に設定するのでしょうか?そうでない場合は、トリガーに挿入されているチェックボックスをチェックして、それ以上進まなければならないかどうかを確認します。 – Leonidas199x
トリガに挿入したことを確認していただきありがとうございます! ...正直言って、モデルは少し複雑です。私の実際のアプリケーションでは、新しいバージョンが作成されると、ProjectTableの別のIDを更新する必要があります...これは単なる例です:)ありがとう! – TimHorton