更新トリガーにこのクエリがあります
UPDATE [FSSQLPROD01].[collectionsDELETE].[dbo].[collections]
SET
Defendant_1 = i.DisplayName
, Loan_Number_1 = i.Comments
, Client = i.KS_BookName
, Date_Instructed = i.OpenDate
, Person_Responsible_name = i.ResponsibleFeeEarnerName
, Person_Responsible_Email = i.ResponsibleFeeEarnerEmail
, Person_Acting_name = i.BillingFeeEarnerName
, Person_Acting_email = i.BillingFeeEarnerEmail
, Agent_Acting_name = i.BillingFeeEarnerName
, Agent_Acting_email = i.BillingFeeEarnerEmail
, CBA_Panel_Service_Area = i.KS_ServiceCat
, HBN_Number = i.KS_ClientAcctRef
, St_George_Contact = i.KS_Instructor
FROM
[FSSQLPROD01].[collectionsDELETE].[dbo].[collections] c
INNER JOIN
Inserted i
ON
Left(c.file_number, 6) COLLATE DATABASE_DEFAULT = i.MatterNumber COLLATE DATABASE_DEFAULT
Join 接続は File_Number (例: 70003-1) で一致しますが、不明な理由により、この行に更新する必要があるデータが完全にランダムな行 614864-7 に更新されています。
引き続きトリガーを実行して 70003-1 行を更新することはできますが、他の行 614864-7 を更新し続けます。
これは、リンクされたサーバー全体で実行されています。トリガーは、他のサーバーとデートしている1つのサーバー上にあります
サーバー tigger は Microsoft SQL Server 2005 - 9.00.3042.00 (X64) Feb 10 2007 00:59:02 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) )
サーバー トリガーが Microsoft SQL Server 2005 を更新中 - 9.00.3042.00 (X64) 2007 年 2 月 10 日 00:59:02 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) )
サーバーの SP を SP4 に更新すると問題が解決するのではないかと考えていました。
これがサーバーを悩ませている理由を誰もが知っていますか
修正
ええ、私は実際に値をハードコーディングし、SQLステートメントを単純化して、正常に機能するようにしました
DECLARE @MatterNumber as varchar(50)
SET @MatterNumber = (SELECT i.MAtternumber FRom Inserted as i) + '-1'
Print @MatterNumber
UPDATE [FSSQLPROD01].[collectionsDELETE].[dbo].[collections]
SET Loan_Number_1 = ‘123’
WHERE file_number = @MatterNumber
しかし、Declared Varible 値を Loan_Number_1 または他の列のいずれかに設定するとすぐに、問題が発生し始めます。
DECLARE @LoanNumber as varchar(50)
SET @LoanNumber = (SELECT i.Comments FRom Inserted as i)
Print @LoanNumber
DECLARE @MatterNumber as varchar(50)
SET @MatterNumber = (SELECT i.MAtternumber FRom Inserted as i) + '-1'
Print @MatterNumber –-I print here I see 70003-1
UPDATE [FSSQLPROD01].[collectionsDELETE].[dbo].[collections]
SET Loan_Number_1 = @LoanNumber
WHERE file_number = @MatterNumber
Print @MatterNumber –-I print here I see 70003-1