都是中文引起的。
建议改为nvarchar(254)最好。declare @a varchar(5)
set @a = left('中国人民',4)
select @a
-----
中国(所影响的行数为 1 行)declare @b nvarchar(5)
set @b = left('中国人民',4)
select @b
-----
中国人民(所影响的行数为 1 行)
建议改为nvarchar(254)最好。declare @a varchar(5)
set @a = left('中国人民',4)
select @a
-----
中国(所影响的行数为 1 行)declare @b nvarchar(5)
set @b = left('中国人民',4)
select @b
-----
中国人民(所影响的行数为 1 行)
但是我想问问,我都系统已经运行很长时间了,这样修改,会不会引起其他的问题出现。比如对字段的赋值,取值等问题。
因为这个表直接计算操作员的缴交的钱,一旦出现问题不好办。大力你说的改为这样不行的,问题不是定义的变量长度。但是如果将字段的长度改为4000就可以。
nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。