SQL Server 2005 T-SQL Recipes------Insert, Update, Delete语句
Posted on 2009-05-04 15:39 鸡尾虾的壳 阅读(462) 评论(0) 编辑 收藏 举报1. 使用默认值插入记录
INSERT Production.Location(Name, CostRate, Availability, ModifiedDate)
VALUES ('Wheel Storage 3', 11.25, 80.00, DEFAULT)
2. IDENTITY属性类型Column的显式插入
SET IDENTITY_INSERT HumanResources.Department ON
INSERT HumanResources.Department(DepartmentID, Name, GroupName)
VALUES (17, 'Database Services', 'Information Technology')
SET IDENTITY_INSERT HumanResources.Department OFF
3. Uniqueidentifier属性类型Column的显式插入
INSERT Purchasing.ShipMethod(Name, ShipBase, ShipRate, rowguid)
VALUES('MIDDLETON CARGO TS1', 8.99, 1.22, NEWID())
4. 从查询结果中插入多行
使用Insert......Select语句
5. 从存储过程中插入多行
使用Insert......Exec
6. 更新大值类型列
SQL Server 2005引入了varchar(max),nvarchar(max),varbinary(max)类型的列。对于insert, 语法上没有区别。但是对于update,需要使用.write方法。
UPDATE RecipeChapter
SET Chapter .WRITE('daily', 178, 10)
WHERE ChapterID = 1
7. 使用Openrowset,Bulk更新图像文件
UPDATE StockGifs
SET Gif =
(SELECT BulkColumn
FROM OPENROWSET(BULK
'C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\
DataWarehouseDesigner\KPIsBrowserPage\Images\Cylinder2.gif',
SINGLE_BLOB) AS x)
WHERE StockGifID =1
8. 采用Truncate table删除表
比Delete快,因为它没有记录操作日志。全部删除,没有where子句。但是,如果表被外键引用或者在索引视图中使用,那么该表是不能够被Truncate的。
9. Output子句
把Inert, Update, Delete操作中受影响的记录输出到另外的表中。
10. 使用Top子句分块操作数据
Top子句也能用于Delete,Update,Insert。分块提交事务,对于大容量数据的处理,有利于提高并发性和处理性能。
DELETE TOP(500)
FROM Production.Example_BillOfMaterials