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的。如果该表有IDENTITY列的话,使用TRUNCATE能使IDENTITY列回到初始值。
9. Output子句
把Inert, Update, Delete操作中受影响的记录输出到另外的表中。
10. 使用Top子句分块操作数据
Top子句也能用于Delete,Update,Insert。分块提交事务,对于大容量数据的处理,有利于提高并发性和处理性能。
DELETE TOP(500)
FROM Production.Example_BillOfMaterials
本文介绍了多种SQL操作技巧,包括使用默认值插入记录、显式插入IDENTITY和Uniqueidentifier属性类型的列、从查询结果或存储过程中插入多行记录、更新大值类型列、使用Openrowset和Bulk更新图像文件、采用Truncatetable删除表、使用Output子句输出受影响记录及使用Top子句进行分块操作。
272

被折叠的 条评论
为什么被折叠?



