0
我在MS SQL中創建觸發器時遇到了一個奇怪的問題。 我有一個查詢執行沒有錯誤,但當我把它放在觸發器體內,它會給出錯誤查詢在沒有錯誤但沒有觸發的情況下執行
無效的列名'ScreenName'。
我在這裏放置整個觸發代碼。
CREATE TRIGGER [dbo].[tr_tbFieldLabels_FieldLabelLength] ON [dbo].[tbFieldLabels]
AFTER INSERT
AS
Update tbFieldLabels
Set TextBoxLength = (SELECT top 1 TextboxLength
FROM tbFieldLabelsSource FLS
WHERE FLS.ScreenName = Inserted.ScreenName
AND FLS.SystemName = Inserted.SystemName)
FROM tbFieldLabels , Inserted WHERE tbFieldLabels.ID = Inserted.ID
GO
感謝您的答覆。 我不面臨你提到的這個問題。我可能修改了它忘記使用別名。在這種情況下,你會提到同樣的錯誤。但我面臨着另一個問題。數據庫拒絕存在where子句中的列。 – Lali
'AS'和'Go'中的查詢運行良好,但是當我運行整個觸發器時。我導致錯誤'無效的列名'ScreenName'' – Lali
如果你沒有顯示你的確切代碼,沒有人可以幫助你。至於「AS和GO之間的查詢運行良好」 - 這是不可能的,因爲INSERTED虛擬表不存在於觸發器之外。用更多的事實來編輯你的問題。 – RichardTheKiwi