sqlserver2005 TSql新功能学习总结(数据类型篇)
更新时间:2010年07月20日 01:53:23 作者:
sql server2005 TSql新功能学习总结(数据类型篇) ,希望对需要的朋友有所帮助。
sql server2005新增加了2大数据类型:
1.大值数据类型
2.xml
1.大值数据类型
Microsoft SQL Server 2005 中引入了 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。
大值数据类型和 SQL Server 早期版本中与之对应的数据类型之间的关系:
varchar(max) text
nvarchar(max) ntext
varbinary(max) image
重要提示:
在 Microsoft SQL Server 以后的版本中,将删除 ntext、text 和 image 数据类型。请避免在新开发工作中使用这些数据类型,并考虑修改当前使用这些数据类型的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。
更新大值数据类型
UPDATE 语句支持 .WRITE( ) 子句对基础大值数据列进行部分更新。这类似于 SQL Server 早期版本中所支持的对 text、ntext、image 数据类型的文本指针操作、WRITETEXT 和 UPDATETEX。
使用 .WRITE (expression, @Offset, @Length) 子句执行对 varchar(max)、nvarchar(max) 和 varbinary(max) 等数据类型的部分或完整更新。
若要针对其他字符或二进制数据类型获得相同的 .WRITE 功能,可以使用 STUFF等字符函数
注意事项:
0.@Offset 是基于零的序号位置.
1.不能使用 .WRITE 子句更新 NULL 列或将 column_name 的值设置为 NULL。
注意事项:
0.@Offset 是基于零的序号位置.
1 .不能使用 .WRITE 子句更新 NULL 列或将 column_name 的值设置为 NULL。
create table test1( ids int, DocumentSummary nvarchar(max))
go
select * from test1
go
insert into test1
select 1,null
go
select * from test1
go
--错误不能使用.WRITE 子句更新NULL 列
update test1
set DocumentSummary.WRITE(N'abcdefg',0,NULL)
--正确的
update test1
set DocumentSummary=N'abcdefg'
select * from test1
go
2.如果将 expression 设置为 NULL,则忽略 @Length,并将 column_name 中的值按指定的 @Offset 截断。
--把efg截断,得到abcd
update test1
set DocumentSummary.WRITE(Null , 4 ,0)
select * from test1
go
3.如果 @Offset 为 NULL,则更新操作将在现有 column_name 值的结尾追加 expression,并忽略 @Length。
-- 在结尾追加hi,得到abcdefghi
update test1
set DocumentSummary.WRITE('hi' , null ,0)
select * from test1
go
4.如果 @Length 为 NULL,则更新操作将删除从 @Offset 到 column_name 值的结尾的所有数据。
-- 得到ahi
update test1
set DocumentSummary.WRITE('hi' , 1 ,null)
select * from test1
go
.xml
存储的 xml 数据类型表示实例大小不能超过 2 GB。
1.大值数据类型
2.xml
1.大值数据类型
Microsoft SQL Server 2005 中引入了 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。
大值数据类型和 SQL Server 早期版本中与之对应的数据类型之间的关系:
varchar(max) text
nvarchar(max) ntext
varbinary(max) image
重要提示:
在 Microsoft SQL Server 以后的版本中,将删除 ntext、text 和 image 数据类型。请避免在新开发工作中使用这些数据类型,并考虑修改当前使用这些数据类型的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。
更新大值数据类型
UPDATE 语句支持 .WRITE( ) 子句对基础大值数据列进行部分更新。这类似于 SQL Server 早期版本中所支持的对 text、ntext、image 数据类型的文本指针操作、WRITETEXT 和 UPDATETEX。
使用 .WRITE (expression, @Offset, @Length) 子句执行对 varchar(max)、nvarchar(max) 和 varbinary(max) 等数据类型的部分或完整更新。
若要针对其他字符或二进制数据类型获得相同的 .WRITE 功能,可以使用 STUFF等字符函数
注意事项:
0.@Offset 是基于零的序号位置.
1.不能使用 .WRITE 子句更新 NULL 列或将 column_name 的值设置为 NULL。
注意事项:
0.@Offset 是基于零的序号位置.
1 .不能使用 .WRITE 子句更新 NULL 列或将 column_name 的值设置为 NULL。
复制代码 代码如下:
create table test1( ids int, DocumentSummary nvarchar(max))
go
select * from test1
go
insert into test1
select 1,null
go
select * from test1
go
--错误不能使用.WRITE 子句更新NULL 列
update test1
set DocumentSummary.WRITE(N'abcdefg',0,NULL)
--正确的
update test1
set DocumentSummary=N'abcdefg'
select * from test1
go
2.如果将 expression 设置为 NULL,则忽略 @Length,并将 column_name 中的值按指定的 @Offset 截断。
复制代码 代码如下:
--把efg截断,得到abcd
update test1
set DocumentSummary.WRITE(Null , 4 ,0)
select * from test1
go
3.如果 @Offset 为 NULL,则更新操作将在现有 column_name 值的结尾追加 expression,并忽略 @Length。
复制代码 代码如下:
-- 在结尾追加hi,得到abcdefghi
update test1
set DocumentSummary.WRITE('hi' , null ,0)
select * from test1
go
4.如果 @Length 为 NULL,则更新操作将删除从 @Offset 到 column_name 值的结尾的所有数据。
复制代码 代码如下:
-- 得到ahi
update test1
set DocumentSummary.WRITE('hi' , 1 ,null)
select * from test1
go
.xml
存储的 xml 数据类型表示实例大小不能超过 2 GB。
您可能感兴趣的文章:
- SQL Server 中的数据类型隐式转换问题
- SQL Server中T-SQL 数据类型转换详解
- 详解SQL Server中的数据类型
- SQL Server数据类型转换方法
- SQL Server比较常见数据类型详解
- SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析
- SQL Server中实现二进制与字符类型之间的数据转换
- SQLserver查询数据类型为ntext是空或NULL值的方法
- SQL SERVER 数据类型详解补充2
- sql server 常用的几个数据类型
- sqlserver 数据类型转换小实验
- SQL SERVER的数据类型
- Sql Server之数据类型详解
相关文章
sqlserver 存储过程中的top+变量使用分析(downmoon)
sqlserver 存储过程中的top+变量使用分析(downmoon) ,需要的朋友可以参考下。2011-05-05SQL Server 2005的cmd_shell组件的开启方法
这篇文章介绍了SQL Server 2005的cmd_shell组件的开启方法,有需要的朋友可以参考一下2013-09-09SQL Server2005打开数据表中的XML内容时报错的解决办法
从SQL Server2005开始提供了一种新的数据类型XML type,它允许用户将数据以XML文件的格式直接存储到数据表中2012-02-02SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较
排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数row_number、rank、dense_rank和ntile,需要的朋友可以参考下。2009-10-10安装SQL2005提示 找不到任何SQL2005组件的问题解决方案
当我在安装SQL2005的时候出错了(SQL2005是企业版的)。由于第一次安装SQL2005,要求把VS2008的SQL服务关了,做了,安装完毕。2009-08-08SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法
这篇文章主要介绍了SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法,需要的朋友可以参考下2015-01-01MS-sql 2005拒绝了对对象 ''xxx'' (数据库 ''xxx'',架构 ''dbo'')的 SELECT 权
访问了提示“MS-sql 2005拒绝了对对象 'xxx' (数据库 'xxx',架构 'dbo')的 SELECT 权限”的错误2008-05-05
最新评论