首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

急怎么让SQLServer自动截取过长字符串?多谢

2012-03-17 
急!如何让SQLServer自动截取过长字符串?谢谢!各位大侠:我的字段为varchar(20),我希望,在insert时,如果插入

急!如何让SQLServer自动截取过长字符串?谢谢!
各位大侠:
        我的字段为varchar(20),   我希望,在insert时,如果插入的字符串过长,SQLServer能自动截取字符串的前20个字符存入,请问如何实现?  
                               

                                 
                                    万分感谢!

[解决办法]
create table tt(nId int identity(1,1) primary key, cola nvarchar(20));

insert tt values(left( '1234567890asdfghjklzxcvbnmsdfg ',20));
insert tt values(left( '1234567890 ',20));
insert tt values(left(null,20));

select * from tt

----------------------------
nId cola
----------- --------------------
2 1234567890asdfghjklz
3 1234567890
4 NULL

(3 row(s) affected)
[解决办法]
看SQLSERVER关于SET ANSI_WARNINGS的描述,字符串的截断应该是与该项设置有关.请楼主在两台机器(xp,win2003)上分别运行一下下面的代码,比较返回的结果是否相同:
select databaseproperty(N '数据库名称 ',N 'IsAnsiWarningsEnabled ')
结果含义:
0-表示OFF
1-表示ON

热点排行