挿入トリガーに問題があります
これは私のトリガーコードです:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create TRIGGER [dbo].[Vtriggers] ON [dbo].[stats]
FOR INSERT
AS
INSERT INTO [NewDB].dbo.NewStat (StatID)
SELECT ID
FROM inserted
奇妙なことに、トリガーを作成したいテーブルとまったく同じ別のテーブルを作成し、新しいテーブルではトリガーが機能しますが、古いテーブルでは機能しません。info : 古いテーブルでは、同時に複数の挿入があります。
私の両方のテーブルのスキーマは次のとおりです。
古い統計(トリガーが機能していない)
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[stats](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Code] [nvarchar](100) NULL,
CONSTRAINT [PK_Stat] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
そして新しいテスト統計(そのトリガーはそれに作用します):
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Teststats](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Code] [nvarchar](100) NULL,
CONSTRAINT [PK_Teststats] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
そして、ここに別のデータベースの宛先テーブルがあります:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[NewStat](
[ID] [int] IDENTITY(1,1) NOT NULL,
[StatID] [int] NULL,
) ON [PRIMARY]
GO
トリガーは、同じスキーマのテスト テーブルではうまく機能しますが、トリガー ユーザーを作成した後の古い統計テーブルでは、古い統計テーブルに挿入できなくなりました。