我一直在使用 SQL Server CE 一段时间。在那个数据库中,表名就像
UserPosts
, UserProfile
。
但是在我从 SQL Server CE 升级到 SQL Server 之后,名称被编辑为dbo.UserPosts
, dbo.UserProfile
. 并且列的名称也包含在方括号中,例如:[UserProfile]
。
为什么要用这个支架?
我一直在使用 SQL Server CE 一段时间。在那个数据库中,表名就像
UserPosts
, UserProfile
。
但是在我从 SQL Server CE 升级到 SQL Server 之后,名称被编辑为dbo.UserPosts
, dbo.UserProfile
. 并且列的名称也包含在方括号中,例如:[UserProfile]
。
为什么要用这个支架?
括号用于在 SQL Server 中将名称括起来(它们的用途与双引号相同)。
对于由字母数字字符和下划线组成的名称,不以数字开头,也不是保留字,不需要方括号。它们通常用于具有“不规则”名称的列,例如[Column Name]
(注意空格)或保留字如[from]
.
当 SQL Server 生成代码时,方括号的使用过于保守(在我看来)。它将它们用于所有列名、表名,甚至create table
语句中的类型名。因为我从不在我的名字中使用“不规则”字符,所以我发现所有的括号都是不必要的混乱。
这dbo
是一种称为模式的东西。SQL Server 对数据库中的表使用三部分命名约定: ... 如果当前数据库不存在,则数据库名称默认为当前数据库。架构默认为dbo
(或另一个默认架构,如果已更改,几乎永远不会)。并且,有一个四部分命名约定,其中第一部分是服务器名称。