リンク サーバー上の同じテーブルに値を挿入するトリガーに問題があります。これが問題のトリガーです...
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 に複製されます。エラーが発生するのはアプリケーションからのみです。
問題のアプリケーションは、LOCALDB.dbo.WIQ に行を挿入する C# で記述された Windows サービスです。
ありがとうございました、
スコット・ベルカスキー