【发布时间】:2018-04-28 20:49:30
【问题描述】:
意外的 DBA,在这里。我正在查看一个已离开公司的前 DBA 编写的查询,我注意到一些我认为很奇怪的事情;也许我只是无知。 SQL 用于收集有关数据库的信息并提供超链接和文件位置。它使用一个变量。下面是有问题的代码,它是查询的开始。
declare @crlf varchar(2)
set @crlf = char(13)+char(10)
所以,对我来说,看起来变量被声明为 varchar,但随后被设置为两个 char 数据类型的串联?这让我很困惑,因为:
A) 为什么他不将变量设置为他想要开始的数据类型? B)我没有意识到您可以将变量设置为数据类型而不是值 C)我也不知道您可以将数据类型连接在一起(或者在这种情况下添加,也许?)。这对我来说毫无意义。
对此有何见解?
【问题讨论】:
-
A) 因为他真的不知道自己在做什么。 B)有一个数据优先文档,它解释了这种转换是如何工作的。 C)
CHAR(n)函数返回单个字符作为结果,它不是“连接数据类型” -
是的,你完全正确。我只是假设 char(n) 是固定长度的数据类型,而 varchar 不是。谢谢!
标签: sql-server-2008 tsql ssms