大对象(Large Objects)
大对象中SQL Server 2000以及更早的版本中受到很多限制,例如无法与常规数据类型进行比较。SQL Server 2005对打对象进行了改进,引入了XML、BULK等数据类型。XML可以储存和管理XML原始数据,而BULK支持以Row Set的方式导入外部文件。为了保持向前兼容性,SQL Server2005保留了TEXT、NTEXT、IMAGE等数据类型。
最大长度声明
在声明一个对象时,通常需要声明它的最大长度。SQL Server提供了更加灵活的动态长度数据类型:VARCHAR、NVARCHAR、VARBINARY,这些数据类型可以支持最大2GB。同时,SQL Server将常规数据类型与大对象的编程模型进行了统一,所有的函数等均可以运用在常规数据类型与大对象上。
利用诸如STUFF等命令直接对大对象进行修改会耗费很多时间,因此SQL Server提供了Update语句中的Write方法来修改大对象中的局部值。
UPDATE dbo.CustomerData
SET txt_data.WRITE('one hundred and two', 9, 3)
WHERE custid = 102;
详细介绍请见:http://msdn.microsoft.com/en-us/library/ms177523.aspx
Bulk行集访问接口 (Bulk Rowset Provider)
BULK作为OPENROWSET函数的一个接口,可以将一个行集看做一个大对象。例如:
SELECT ShipperID, CompanyName, Phone
FROM OPENROWSET(BULK 'c:\temp\shippers.txt', FORMATFILE = 'c:\temp\shippers.fmt') AS S;
注意:FORMATFILE可以通过bcp.exe命令来产生。
具体使用方法请见:http://msdn.microsoft.com/zh-cn/library/ms190312.aspx