SqlDbType varchar相关

分类:数据库| 发布:camnprbubuol| 查看: | 发表时间:2012/8/2

问题一:在不指定varchar长度的情况下,默认是多少size?

sql code:

declare @payload varchar, @bin_payload varbinary(max);
set @payload='郑州网建camnpr';
set @bin_payload = convert(varbinary(max),@payload);
select @bin_payload;
select CONVERT(varchar(max),@bin_payload);

这段代码输出什么?有什么问题吗?

 

问题原因是:

如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。如果在使用 CASTCONVERT 函数时未指定 n,则默认长度为 30。 (在联机丛书上可以查到 -- http://technet.microsoft.com/zh-cn/sqlserver/bb428874.aspx) 

由此我想得知,在c#中的SqlParameter定义的varchar 如果没有指定长度,那么默认的是多少size呢?

代码形式:

SqlParameter[] myparams = new SqlParameter[]{
       new SqlParameter("@Camnpr",SqlDbType.VarChar),
       new SqlParameter("@State",SqlDbType.TinyInt)
};
myparams[0].Value = "郑州网建camnpr"; //此处的值能否添加到数据库里吗? 测试表示可以。(已最终数据库里字段定义长度为准, 那么SqlParameter里没有检验长度对比吗?)
myparams[1].Value = 1; 

问题二:varchar(max) 在 C# 的SqlParameter怎么表示

varchar(int size) 默认最大值 8000,英文字符占一个字节,中文字符占两个字节

nvarchar(int size) 默认最大值 4000,前面加 n 表示所有字符都占有两个字节

DbType.varchar, -1

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/sqlserver-sqldbtype-varchar.html