MSSQL(TSQL)中的varchar不指定大小好像一般来说只有一个的长度

今天偶尔要重写之前自己写下的trigger,发现有一些问题

例如有下面的代码:

declare ...

...

@DeviceType_ori INT,
@Productor_ori VARCHAR,
@Version_ori VARCHAR,
@BeginRunTime_ori DATETIME,
@DeviceModel_ori VARCHAR;

正在担心如果varchar不去精确定义长度的话会是多少..查了一下关于varchar 的描述.

发现

(摘自

http://bbs.csdn.net/topics/60020321

某个回答

)

varchar[(n)]
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。

在声明varchar类型变量时,可以不指定长度,但是会有问题.
e.g:
declare @aa varchar
set @aa = 'asdafdadfs'
print(@aa)
--结果:
a

 

所以那个trigger没报错.可是会达不到我们想要的目的...

要小心...

原文地址:https://www.cnblogs.com/vimmer/p/2773208.html