コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
USE [testDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_TriggeredTableTest1](
[Id] [int] NOT NULL,
[Field1] [int] NULL,
[Field2] [int] NULL,
[Field3] [int] NULL,
[Description] [nvarchar](50) NULL,
CONSTRAINT [PK_T_TriggeredTableTest1] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [testDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_TriggeredTableTest2](
[Id] [int] NOT NULL,
[Field1] [int] NULL,
[Field2] [int] NULL,
[Field3] [int] NULL,
[Description] [nvarchar](50) NULL,
[UpdatedTime] [datetime] NULL,
[UpdateModule] [nvarchar](50) NULL,
CONSTRAINT [PK_T_TriggeredTableTest2] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [testDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trg_Test_1]
ON [dbo].[T_TriggeredTableTest1]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
--トリガーでINSERTした行数を取得する
DECLARE @cnt AS INT;
SET @cnt = 0;
SELECT @cnt = COUNT(*)
FROM dbo.T_TriggeredTableTest2 AS T2
;
--1秒待機する
WAITFOR DELAY '00:00:01';
--トリガー毎にデータを作成する
INSERT INTO dbo.T_TriggeredTableTest2 (
[Id]
,[Field1]
,[Field2]
,[Field3]
,[Description]
,[UpdatedTime]
,[UpdateModule]
)
SELECT Id + 1 --他のトリガーと重複しないIDに変更します。
,@cnt
,[Field2]
,[Field3]
,[Description]
,GetDate()
,'TRIGGER1' --追加したデータを識別する為にトリガーの名称を記載します。
FROM inserted
;
END
USE [testDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trg_Test_1]
ON [dbo].[T_TriggeredTableTest1]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
--トリガーでINSERTした行数を取得する
DECLARE @cnt AS INT;
SET @cnt = 0;
SELECT @cnt = COUNT(*)
FROM dbo.T_TriggeredTableTest2 AS T2
;
--1秒待機する
WAITFOR DELAY '00:00:01';
--トリガー毎にデータを作成する
INSERT INTO dbo.T_TriggeredTableTest2 (
[Id]
,[Field1]
,[Field2]
,[Field3]
,[Description]
,[UpdatedTime]
,[UpdateModule]
)
SELECT Id + 2 --他のトリガーと重複しないIDに変更します。
,@cnt
,[Field2]
,[Field3]
,[Description]
,GetDate()
,'TRIGGER2' --追加したデータを識別する為にトリガーの名称を記載します。
FROM inserted
;
END
USE [testDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trg_Test_1]
ON [dbo].[T_TriggeredTableTest1]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
--トリガーでINSERTした行数を取得する
DECLARE @cnt AS INT;
SET @cnt = 0;
SELECT @cnt = COUNT(*)
FROM dbo.T_TriggeredTableTest2 AS T2
;
--1秒待機する
WAITFOR DELAY '00:00:01';
--トリガー毎にデータを作成する
INSERT INTO dbo.T_TriggeredTableTest2 (
[Id]
,[Field1]
,[Field2]
,[Field3]
,[Description]
,[UpdatedTime]
,[UpdateModule]
)
SELECT Id + 3 --他のトリガーと重複しないIDに変更します。
,@cnt
,[Field2]
,[Field3]
,[Description]
,GetDate()
,'TRIGGER3' --追加したデータを識別する為にトリガーの名称を記載します。
FROM inserted
;
END
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。