㈠ sql觸發器 需要三個觸發器 通過條形碼自動更新單價 和算出單價和數量總和
1.
CREATETRIGGERTRI_A
ON銷售表
FORINSERT
AS
BEGIN
UPDATE商品信息表
SETA.單價=B.單價
FROM商品信息表A,INSERTEDB
WHEREA.條形碼=B.條形碼
END
GO
2.描述不清晰,什麼叫用戶編號和銷售時間為一致,根據什麼依據來填寫數據,例如,表裡已經有一條記錄了,銷售號為001,那新插入的記錄如果銷售號為001,那新記錄的用戶編號和銷售時間就同步成原來的記錄的編號和時間么?
3.
CREATETRIGGERTRI_C
ON銷售表
FORINSERT
AS
BEGIN
UPDATE銷售表
SET總額=ISNULL(單價,0)*ISNULL(數量,0)
END
㈡ 請幫我做一個觸發器謝謝 在SQL2000中資料庫為DATA_016_2011表名為Inventory 欄位有 名稱、單價、最新單價
單價更新後自動更新最新單價,那不就是兩個單價永遠一致,一個表兩個欄位如果一致,保留一個欄位就可以了。多出來的一個欄位就是垃圾數據。
Create trigger tr_Inventory on Inventory
for insert,update
as
update Inventory set 最新單價=inserted.單價 from inserted where inserted.名稱=Inventory.名稱
㈢ 用SQL語言 建立觸發器 trigger
請補充表結構。
設:orders表(訂單號,客戶編號,訂單日期,本次折扣)
[order details]表(訂單號,貨號,單位,數量,單價)
觸發器代碼如下:
create trgger trUpCount
on orders
for insert
as
update orders set 本次折扣=0.2
where exists(
select 客戶編號 from inserted
where inserted.客戶編號=orders.客戶編號 and 訂單日期<getdate()
group by orders.客戶編號
having Count(*) >20
)
㈣ sql server觸發器問題,一個表裡有個單價,另一個表裡有數量,第三個表有個總價是單價乘以數量,怎麼做
先要on表,再after insert ,改成:
create trigger Insert_bill
on dbo.采購清單
after insert
㈤ 求一段SQL觸發器語法
ALTERTRIGGER[dbo].[dingdan]ON[dbo].[ordBillSub]
FORUPDATE,Insert
AS
BEGIN
--要是你的ordbillsub這個表有行號,直接拼成一個字元串,然後判斷拋出異常
SETNOCOUNTON;
Declare@MSGNVarchar(1000)=''
select@MSG=@MSG+',第'+a.行號+'行'
.prodid=b.prodidwherea.flag=2anda.price<>b.suggestprice
if@msg<>''
Begin
Set@MSG=stuff(@MSG,1,1,'')+'存在產品單價不等於建議售價,不可復核'
RAISERROR(@MSG,11,1)
End
END
Go
ALTERTRIGGER[dbo].[dingdan]ON[dbo].[ordBillSub]
FORUPDATE,Insert
AS
BEGIN
--要是你的ordbillsub這個表沒有行號,就構造一個行號,在拼成一個字元串,然後判斷拋出異常
SETNOCOUNTON;
Declare@MSGNVarchar(1000)=''
Select@MSG=@MSG+',第'+行號+'行'From(
SelectRow_Number()Over(OrderByGetdate())As行號
.prodid=b.prodidwherea.flag=2anda.price<>b.suggestprice
)S
if@msg<>''
Begin
Set@MSG=stuff(@MSG,1,1,'')+'存在產品單價不等於建議售價,不可復核'
RAISERROR(@MSG,11,1)
End
END
Go
㈥ sql 觸發器條件:如果屬於1-40,就必須是』A『並且價格為『3』
先說你第一個問題,@ComputerNumber是判斷屬於1-40的,你不能用varchar這個數據類型,否則333之類的也在1-40之間,這個不贅述,自己可以測試字元類型的數字排序情況。
還有你if判斷什麼的太多了,最後自己都昏了。
創建測試表:
createtableComputer
(ComputerNumberint,
AreaNumbervarchar(10),
pricemoney)
觸發器:
createtriggertrig_Computer_price_3
onComputer
afterinsert
as
declare@ComputerNumberint
declare@AreaNumbervarchar(10)
declare@priceMoney
set@ComputerNumber=()
set@AreaNumber=(select@AreaNumberfrominserted)
set@price=(select@pricefrominserted)
if(exists(select*((AreaNumber!='A')or(price!=3))))
begin
print'數據不對,1-40號屬於A區,單價為3元!'
rollbacktransaction
end
測試語句:
insertintoComputervalues(6,'A',1)
執行結果:
當然,數據也無法插入進去。
㈦ sql觸發器連鎖更新:入庫表的入庫數量和單價改變時,及時更新庫存表的庫存數量和單價。在線急求幫助啊。
CREATE TRIGGER [entry_trigger] ON [dbo].[entry]
FOR update
AS
begin
update storage set storage.amount=inserted.amount,storage.price=inserted.price from storage inner join inserted on inserted.proctid=storage.proctid
end
㈧ SQL同一個表中單價*數量=總價動態更新的觸發器怎麼寫
--update更新類型觸發器
createtrigger觸發器名稱
on表名
forupdate
as
--列級觸發器:是否更新了數量
if(update(數量))
begin
UPDATE表名
SET總價=單價*數量
--條件語句
WHEREID=1
end
go