禁止的架构名称:SYS,DBO(MsSQL)

时间:2018-07-19 12:02:26

标签: sql-server azure sql-server-2008 database-design azure-sql-database

确实是一个愚蠢的问题,但找不到官方参考

除了[sys]和[dbo]之外,sql devps还不能使用其他哪些模式名称?

(确保遵循良好做法,没有点,空格和破折号)

1 个答案:

答案 0 :(得分:2)

SQL附带的架构不能使用。可以从master数据库中列出(如果未添加用户架构):

SELECT name FROM master.sys.schemas;

结果:

dbo
guest
INFORMATION_SCHEMA
sys
db_owner
db_accessadmin
db_securityadmin
db_ddladmin
db_backupoperator
db_datareader
db_datawriter
db_denydatareader
db_denydatawriter

最佳做法是遵循rules for regular identifiers命名模式,表,列等。以下是文档摘录:

  • 第一个字符必须是以下字符之一:

Unicode标准3.2定义的字母。字母的Unicode定义包括从a到z,从A到Z的拉丁字符,以及其他语言的字母字符。

下划线(_),符号(@)或数字符号(#)。

在标识符开头的某些符号在SQL Server中具有特殊含义。以at符号开头的常规标识符始终表示局部变量或参数,不能用作任何其他类型的对象的名称。以数字符号开头的标识符表示临时表或过程。以双数字符号(##)开头的标识符表示全局临时对象。尽管可以使用数字符号或双数字符号字符开头其他类型的对象的名称,但我们不建议您这样做。 某些Transact-SQL函数的名称以符号双(@@)开头。为避免与这些功能混淆,请勿使用以@@开头的名称。

  • 后续字符可以包括以下内容: Unicode标准3.2中定义的字母。 来自基本拉丁语或其他国家文字的小数。 at符号,美元符号($),数字符号或下划线。

  • 标识符不得为Transact-SQL保留字。 SQL Server保留保留字的大写和小写版本。在Transact-SQL语句中使用标识符时,不符合这些规则的标识符必须用双引号或括号定界。保留的字取决于数据库兼容性级别。可以使用ALTER DATABASE语句设置此级别。

  • 不允许包含空格或特殊字符。

  • 不允许使用补充字符。