MSSQL2000表字段内容填空要求
MSSQL2000表字段内容填写要求
MSSQL2000表字段内容填写要求
在表trader_materialcode
有字段列 (本来列的字段类型为VARCHAR(240)) ,前提不能修改。
zd1,zd2,zd3,zd4,zd5,zd6,zd7,zd8,zd9,zd10,zd11,zd12
我想在列内容中录入的是数值型的内容,在触发器中判断,是否为数值型。
不知道如果判断录入的内容是否为数值类型数据,请问有相关函数吗?
------解决方案--------------------
MSSQL2000表字段内容填写要求
在表trader_materialcode
有字段列 (本来列的字段类型为VARCHAR(240)) ,前提不能修改。
zd1,zd2,zd3,zd4,zd5,zd6,zd7,zd8,zd9,zd10,zd11,zd12
我想在列内容中录入的是数值型的内容,在触发器中判断,是否为数值型。
不知道如果判断录入的内容是否为数值类型数据,请问有相关函数吗?
------解决方案--------------------
- SQL code
select isnumeric('abc') 不是数字,isnumeric('23') 是数字;
------解决方案--------------------
ISNUMERIC ( expression )
------解决方案--------------------
- SQL code
isnumeric()
------解决方案--------------------
- SQL code
/* 网上经常有些博文说isnumeric不可靠。 例如: http://blog.csdn.net/cityeremite/article/details/2154781 例如: http://www.cnblogs.com/kokyu/archive/2012/07/23/2604492.html 等等很多... 我用SQL SERVER 2005做个测试。 */ select @@version /* Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2) */ --> 测试数据: @T declare @T table (col varchar(10)) insert into @T select '2.1' union all select '2.1-' union all select '2,111' union all select '+21' union all select '+2.1' union all select '-2.1' union all select '-22' union all select '2-2' union all select '234a234' union all select '111aaa' union all select 'a1' select * from @T where ISNUMERIC(col)=1 /* col ---------- 2.1 2,111 +21 +2.1 -2.1 -22 */ --说明isnumeric 是可以判断正负号和千分号和小数点的。