我有一個更新觸發器SQL觸發器是更新隨機行不加入行
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
此查詢現在加入連接上File_Number例如相匹配70003-1,但由於某些未知的原因,應更新到此行的數據已更新爲隨機行614864-7
我可以繼續執行觸發器和特林更新70003-1行,但我繼續更新其他行614864-7
這也跨鏈接服務器的觸發是一個服務器最多約會其他服務器
服務器跳跳虎坐在Microsoft SQL Server上運行2005 - 9.00.3042.00(X64 )Feb 10 2007 00:59:02 Copyright(c)1988-2005 Windows NT 5.2(Build 3790:Service Pack 2)上的Microsoft Corporation企業版(64位)
服務器觸發器正在更新Microsoft SQL Server 2005 - 9.00.3042.00(X64)Feb 10 2007 00:59:02 Copyright(c)1988-2005 Windows NT 5.2上的Microsoft Corporation企業版(64位)(內部版本3790:服務包2)
我一直在想,更新服務器SP到SP4可能會解決這個問題?
有誰有振振有辭,爲什麼這可能haapening服務器
Ammendment
是啊,我居然硬編碼值,並簡化了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
但作爲立即將聲明的變量值設置爲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
我非常懷疑這是SQL服務器本身的一個問題 - 很可能是你的觸發代碼有錯誤 – Charleh
我同意Charleh。爲什麼不嘗試一些不同的東西來隔離問題,如下所示:1.對觸發器進行硬編碼,看看它是否按預期運行2.將插入的表格寫入另一個表格,然後進行檢查。你知道如果你更新了那一行,觸發器將被插入表中的多行調用? –
我已經推薦了我的任務,以展示我如何硬編碼以及向我展示了什麼 –