我最近不得不多次重新创建用户。
为了方便创建用户,我会右击用户并选择script login as
, create to
, New Query Editor Window
。
但是,这样做之后,我收到一个语法错误:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'ROLE'.
这里发生了什么?
我最近不得不多次重新创建用户。
为了方便创建用户,我会右击用户并选择script login as
, create to
, New Query Editor Window
。
但是,这样做之后,我收到一个语法错误:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'ROLE'.
这里发生了什么?
您需要确保您的脚本选项设置为针对正确的版本。您可以在服务器版本的工具/选项/对象资源管理器/脚本/脚本中执行此操作。在您的情况下,您应该选择 2008(它是 2008 和 2008 R2 的保护伞),尽管 2005 可能也可以。
挑战在于,如果您迁移到 SSMS 的 SQL Server 2016 版本,这种向后兼容性的某些部分会被破坏(事实上,您现在使用的版本也可能会被破坏,我最近没有测试过,但是如果所以,它不太可能被修复):
您无法为 2008 年编写此特定登录角色的主要原因是
CREATE SERVER ROLE
- 事实上,首先创建用户定义的服务器角色的能力 - 是在 SQL Server 2012 中引入的。因此,您必须在没有脚本的情况下编写登录如果您想部署到某个版本 < 2012 的角色。UPDATE : 微软刚刚在 Connect 项中添加了注释,表示不会修复,原因是: