sqlservermax
‘壹’ sql server中的nvarchar最大的长度是4000个字吗
1、在SQL2000版本中,最大长度是4000。
2、在SQL2005及以上版本中,最大长度是2G,本人实测,SQL2008中,将测试数据库中一个字段定义为nvarchar(max),然后使用以下SQL语句。
UPDATEA13SET[科室]=[科室]+[科室]--科室字段定义为nvarchar(max)
SELECTLEN([科室])FROMA13
--运行结果
--长度
--83886080
连继N次重复运行后科室字段的长度已达吓人的84M,到底多大,有兴趣可以自个试试,不过,越大执行速度会越慢哦。
3、注意,在某些情况下,前台应用对过长的字串是无法正确处理的,比如一些表格控制,比如C++定义的字符串变量。
‘贰’ 在SQL中可以使用MAX函数取两个数中较大的一个数吗 在线等啊
在 SQL中 max 是聚合函数,只能在某列上聚合求最大值,不能像在.net里头的max(a,b)方法来求最大值。
可以使用 case when .
select case when a> b then a else b end as max_value from table
‘叁’ hibernate 映射 sqlserver varchar(max)类型
有关SQLServer中varchar和nvarchar的区别可以直接去google。一般在中文系统中应该使用nvarchar作为字符串的对应类型,但是Hibernate中的默认实现SQLServerDialect使用了varchar。以下方法可以简单地转为使用nvarchar:
自己写一个dialect,继承SQLServerDialect,在构造器中将原先varchar类型的注册声明覆盖:
registerColumnType(Types.VARCHAR, "nvarchar($l)");
千万注意,“$”后面的是字段长度的占位符,是“l(ength)”,而不是数字“1”(因为看hibernate的doc时没分清“l”和“1”,浪费了我一上午去找原因)
然后在hibernate的配置文件中将hibernate.dialect的值设为你的dialect实现类就OK了