好吧,我想寫一個觸發器,客戶試圖購買的東西,但如果他通過了他的信用卡限額,交易必須是取消。MSSQL觸發器:多部分標識符「i.charged_amount」無法綁定
我的表是:
客戶(姓名,SSN,代碼),
賬戶(customer_code,acc_number,平衡,率),
的信用卡(發行,到期,限制,平衡,CC_NUMBER),
交易(日期,CC_NUMBER,charged_amount,** ** conf_numb呃,shop_code)
和我寫的是
create trigger check_balance on transactions
for insert
as
Declare @balance int,
@limit int
SELECT @balance = balance, @limit = limit
FROM creditcard INNER JOIN inserted i ON creditcard.cc_number = i.cc_number
IF (@balance + i.charged_amount > @limit)
BEGIN
ROLLBACK TRANSACTION
END
但我得到一個
消息4104,級別16,狀態1,過程check_balance,10號線 多部分標識符 「i.charged_amount」 無法綁定。 其中第10行是 如果(@balance + i.charged_amount> @limit) 我知道masg意味着我無法使用i。*,因此它的範圍僅在select..from中。 我嘗試使用引用新行作爲我,但我得到了引用附近的語法錯誤。我正在使用MSSQL服務器2005 我不太熟悉sql中的觸發器,所以你能幫我嗎?
這仍然會允許通過同一張卡上的多次不同購買共同超過帳戶限額。 – 2010-12-06 18:45:49
@馬丁,很好的捕捉,你今天在作業上會得到一個「A」! – 2010-12-06 19:03:48
哈哈! +1對於修復。 – 2010-12-06 19:09:35