2009-05-26 44 views
1

我遇到了将值插入链接服务器上相同表的触发器的问题。这是有问题的扳机......触发器插入到导致错误的链接表中

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 

当我插入行从我的应用程序收到以下errror LOCALDB.dbo.WIQ ...

System.Data.SqlClient的.SqlException:如果语句包含不带INTO子句的OUTPUT子句,则语句DML 的目标表'WIQ'不能具有任何已启用的 触发器。

问题是我没有了任何OUTPUT条款(或任何其他)上表中定义的触发器,也没有目标表在其上定义的触发器。

我不知道为什么我得到这个错误。奇怪的是,如果我将值插入到SQL Server Management Studio的列中,那么触发器运行正常,并且该行被复制到DRSERVER中,但它只是从Application获取错误。

有问题的应用程序是用C#编写的Windows服务,它将行插入到LOCALDB.dbo.WIQ中。

谢谢

斯科特Vercuski

回答

0

事实证明,这是从我的应用程序调用的组件之一参与该插入数据到表中的存储过程,并在它有一个OUTPUT子句。我不知道这个组件是如何运作的,而且我能够做出改变以减轻错误。

谢谢大家阅读/思考我的问题。