SQL Server OUTPUT指令
OUTPUT用在新、刪、改等資料處理動作中
可以即時得知剛剛操作動作的結果
配合inserted、deleted二個暫存表
除了顯示基本資料狀態,還可以將
顯示出來的狀態另存到別張表中
可以即時得知剛剛操作動作的結果
配合inserted、deleted二個暫存表
除了顯示基本資料狀態,還可以將
顯示出來的狀態另存到別張表中
--OUTPUT用法 --基本用法,顯示剛剛INSERT 的結果------------------------------- INSERT INTO 匠匠 OUTPUT inserted.* VALUES(27,'蛋塔',35) --基本用法,顯示剛剛DELETE 的結果------------------------------- DELETE 匠匠 OUTPUT deleted.* WHERE 產品編號 = 27 --基本用法,顯示剛剛UPDATE 的結果------------------------------- DELETE UPDATE 匠匠 SET 價錢 =38 OUTPUT inserted.價錢 AS 新價 ,deleted.價錢 AS 舊價 ,inserted.價錢 - deleted.價錢 AS 價差 WHERE 產品編號 = 27 ----------------------------------------------------------- --可以建一張表,再配合STORED PROCEDURE另存異動紀錄--------------- CREATE TABLE 匠匠追蹤 ( 產品編號 INT, 新品名 NVARCHAR(5), 舊品名 NVARCHAR(5), 新價錢 MONEY, 舊價錢 MONEY, 異動狀態 NVARCHAR(8), 帳號 VARCHAR(200) DEFAULT SUSER_SNAME(), 時間 DATETIME DEFAULT GETDATE() ) GO --建立新增追蹤PROCEDURE--- CREATE PROC 匠匠新增 @id INT,@name NVARCHAR(5),@price MONEY AS INSERT INTO 匠匠 OUTPUT inserted.產品編號,inserted.品名,inserted.價錢,'新增產品' INTO 匠匠追蹤(產品編號,新品名,新價錢,異動狀態) VALUES(@id,@name,@price) GO --建立刪除追蹤PROCEDURE--- CREATE PROC 匠匠刪除 @id INT AS DELETE 匠匠 OUTPUT deleted.產品編號,deleted.品名,deleted.價錢,'刪除產品' INTO 匠匠追蹤(產品編號,舊品名,舊價錢,異動狀態) WHERE 產品編號 = @id GO --建立更新追蹤PROCEDURE--- CREATE PROC 匠匠異動 @id INT,@name NVARCHAR(5),@price MONEY AS UPDATE 匠匠 SET 價錢 =@price,品名 = @name OUTPUT inserted.品名,inserted.價錢, deleted.品名,deleted.價錢,'更新產品' INTO 匠匠追蹤(新品名,新價錢,舊品名,舊價錢,異動狀態) WHERE 產品編號 = @id GO SELECT * FROM 匠匠追蹤 --當程式人員有需要資料異動,只要呼叫PROCEDURE即可--------- EXEC 匠匠新增 26,'茶葉蛋',8 EXEC 匠匠異動 26,'大茶葉蛋',18 EXEC 匠匠刪除 26
留言
張貼留言