MSSQL(T-SQL)中的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没报错.可是会达不到我们想要的目的...
要小心...
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步