SQL Server列的默认值

3
当您在 SQL Server Management Studio 表设计器中使用列的默认值时,SSMS 会更改您的默认值,并在其周围加上括号(在所有版本和所有版本的 SQL Server 中都是如此)。例如,如果您将 0 设置为默认值,则此默认值将更改为 (0)。我不知道为什么 SQL Server 使用括号,以及是否存在实际原因。
提前致谢。

你是在说比如在表格设计师中指定默认值时的情况吗? - Damien_The_Unbeliever
@Damien_The_Unbeliever。是的,当然。我编辑了我的帖子。 - mehdi lotfi
2个回答

3

有某些类型的对象,例如 DEFAULT 和 CHECK 约束条件,SQL Server不会存储原始的文本形式-与存储过程相反,您可以(除了加密)始终以与服务器提供给它的确切形式检索它-包括任何空格,格式,注释等。

由于SQL Server不存储文本形式,因此每次用户请求此类对象时,它必须重新生成文本形式以向用户显示。何时何地选择插入括号可能是一个谜(没有记录),但由于它们不改变表达式的含义,所以不应该成为问题。


1
实际上,0(0) 将得出相同的结果,因此没有什么需要克服的。忽略它。这只是 SQL 内部存储和可见性问题。 如果您在交互式环境中执行此操作,它也会这样做。不确定为什么会这样,但不用担心。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接