SQL Server列的默认值

时间:2014-06-27 08:01:41

标签: sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012 sql-server-2014

当您对SQL Server Management Studio表设计器中的列使用默认值时,SSMS会更改您的默认值并使用括号括号(在所有版本和所有版本的SQL Server中)。例如,如果将0设置为默认值,则此默认值更改为(0)。我不知道为什么sql server使用括号,并且有一个实际的原因。

提前致谢。

2 个答案:

答案 0 :(得分:3)

某些类型的对象,例如DEFAULTCHECK约束,SQL Server不存储原始的文本形式 - 与存储过程相比,在那里你can(缺席加密)总是以你给服务器的确切形式检索它 - 包括任何空格,格式,注释等。

由于SQL Server不存储文本格式,因此它总是必须重新生成文本格式,以便在用户请求此类对象时显示。它选择插入括号的时间和地点可能有点神秘(没有记录),但由于它们不会改变表达式的含义,因此它们不应该成为一个问题。

答案 1 :(得分:1)

实际上,0(0)会评估相同的结果,因此没有什么可以真正克服的。忽略它。这就是SQL如何在内部存储它们以及可见性问题。 它确实是你以交互方式做到的。不知道为什么会这样,但不要担心。