ASP+Sql server
我的SQL语句中:
sql=".........cast(ziduan as nvarchar) ..............."这样之后,ziduan被转换成nvarchar类型,可是我发现,我的数据有所丢失.1,请问cast(ziduan as nvarchar)默认截取ziduan 的几个字节?
2,请问cast(ziduan as nvarchar(32))默认截取ziduan 的32个字节吗?
我的SQL语句中:
sql=".........cast(ziduan as nvarchar) ..............."这样之后,ziduan被转换成nvarchar类型,可是我发现,我的数据有所丢失.1,请问cast(ziduan as nvarchar)默认截取ziduan 的几个字节?
2,请问cast(ziduan as nvarchar(32))默认截取ziduan 的32个字节吗?
SELECT @n=REPLICATE('*',50)SELECT LEN(CAST(@n AS NVARCHAR))自己做做测试不就知道了吗?
每个字符都占2个字节.
对CAST( AS NVARCHAR) 或 CAST( AS VARCHAR) 不指定长度.则默认为30.超过30.截断.
DECLARE @XX nvarchar 不指定长度.默认是1个字符..超过.则截断.建议指定长度.
declare @s varchar(50)
SELECT @s=REPLICATE('A',50)
declare @t table([Name] varchar(50))
insert @t select @s
select len(cast([name] as nvarchar)) from @t
/*
(影響 1 個資料列)
-----------
30(影響 1 個資料列)*/
nvarchar不带参数 默认提取几个字符?
1.60
2.32如果是创建表用(n)varchar,没制定长度的话
varchar = 1
nvarchar = 2
为了节省空间,最好指定长度.