2008年6月25日 11:12:28
1.检查要创建的表是否存在?
2008年6月25日收集SQL命令:IF OBJECT_ID('Price_history','U'IS NOT NULL
2008年6月25日收集SQL命令:    
DROP TABLE Price_history
2.复到一个表的表结构以开成一个新表。
2008年6月25日收集SQL命令:SELECT 1 AS ProductID,UnitPrice AS OldPrice,UnitPrice AS NewPrice,GETDATE() AS Date
2008年6月25日收集SQL命令:
INTO Price_history
2008年6月25日收集SQL命令:
FROM dbo.Products
2008年6月25日收集SQL命令:
WHERE 1=0
3.判断某触发器是否存在?
2008年6月25日收集SQL命令:IF OBJECT_ID('trg_Products_u','TR'IS NOT NULL
2008年6月25日收集SQL命令:    
DROP TRIGGER trg_Products_u;
2008年6月25日收集SQL命令:
GO
4.创建一个触发器
2008年6月25日收集SQL命令:CREATE TRIGGER trg_Products_u ON dbo.Products FOR UPDATE
2008年6月25日收集SQL命令:
AS
2008年6月25日收集SQL命令:
--如果更新的不是UnitPrice或没有更新直接返回
2008年6月25日收集SQL命令:
IF NOT UPDATE(UnitPrice) OR @@ROWCOUNT=0
2008年6月25日收集SQL命令:    
RETURN;
2008年6月25日收集SQL命令:
ELSE
2008年6月25日收集SQL命令:    
INSERT INTO price_history//实现了在更新价格时在日志表里记录下原始价格和新价格
2008年6月25日收集SQL命令:    
SELECT i.ProductID,d.UnitPrice,i.UnitPrice,getdate()
2008年6月25日收集SQL命令:    
FROM inserted i
2008年6月25日收集SQL命令:        
join deleted d //用Inserted和Deleted这两个表实现:)
2008年6月25日收集SQL命令:        
on i.ProductID=d.ProductID
2008年6月25日收集SQL命令:
GO

5.一个带多表查询的UPdate语句
2008年6月25日收集SQL命令:update p
2008年6月25日收集SQL命令:
set UnitPrice=UnitPrice*1.5
2008年6月25日收集SQL命令:
from dbo.Products p
2008年6月25日收集SQL命令:    
join dbo.Suppliers s
2008年6月25日收集SQL命令:    
on p.SupplierID=s.SupplierID
2008年6月25日收集SQL命令:
where s.city=N'London'

6.检查、创建、执行存储过程
2008年6月25日收集SQL命令:IF OBJECT_ID('prc_UpdateProductPrice','P'IS NOT NULL
2008年6月25日收集SQL命令:    
DROP PROC prc_UpdateProductPrice;
2008年6月25日收集SQL命令:
GO
2008年6月25日收集SQL命令:
CREATE PROCEDURE prc_UpdateProductPrice
2008年6月25日收集SQL命令:
WITH RECOMPILE
2008年6月25日收集SQL命令:
AS
2008年6月25日收集SQL命令:
BEGIN
2008年6月25日收集SQL命令:    
SET NOCOUNT ON;
2008年6月25日收集SQL命令:    
update p
2008年6月25日收集SQL命令:    
set UnitPrice=UnitPrice*1.5
2008年6月25日收集SQL命令:    
from dbo.Products p
2008年6月25日收集SQL命令:        
join dbo.Suppliers s
2008年6月25日收集SQL命令:        
on p.SupplierID=s.SupplierID
2008年6月25日收集SQL命令:    
where s.city=N'London'
2008年6月25日收集SQL命令:
END
2008年6月25日收集SQL命令:
GO
2008年6月25日收集SQL命令:
EXEC prc_UpdateProductPrice
2008年6月25日收集SQL命令:
GO

相关文章: