我遇到了一个触发器问题,该触发器将一个值插入到链接服务器上的同一个表中。这是有问题的触发器...
USE [localDB]
GO
/****** Object: Trigger [dbo].[INS_New_Row] Script Date: 05/26/2009 10:50:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER TRIGGER dbo.INS_New_Row
ON LOCALDB.dbo.WIQ
AFTER INSERT
AS
BEGIN
INSERT INTO
DRSERVER.LOCALDBCLONE.dbo.WIQ
SELECT
column1,
column2,
column3
FROM
inserted
END
当我从我的应用程序向 LOCALDB.dbo.WIQ 中插入一行时,我收到以下错误...
System.Data.SqlClient.SqlException:如果语句包含没有 INTO 子句的 OUTPUT 子句,则 DML 语句的目标表“WIQ”不能有任何启用的触发器。
问题是我在表上定义的这个(或任何其他)触发器中没有任何 OUTPUT 子句,目标表上也没有定义任何触发器。
我不确定为什么会收到此错误。奇怪的是,如果我从 SQL Server Management Studio 将值插入到列中,触发器运行正常,并且该行被复制到 DRSERVER 中,它只是来自应用程序的错误。
有问题的应用程序是用 C# 编写的 Windows 服务,可将行插入 LOCALDB.dbo.WIQ。
谢谢,
斯科特·维库斯基