今天偶尔要重写之前自己写下的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没报错.可是会达不到我们想要的目的...
要小心...