我正在尝试更改系统中的 SQL Agent Operator,但它不允许。
我有 sa 但我认为这部分是由于我的工作方式。
我正在尝试修改名称NIT and Arts
为的运算符NIT and ARTS
,当我这样做时,它会返回错误“指定的@name
( NIT and ARTS
) 已经存在,即使它当前不存在。
我正在运行SQL Server 2008R2
。任何帮助都会很棒。谢谢。
我正在尝试更改系统中的 SQL Agent Operator,但它不允许。
我有 sa 但我认为这部分是由于我的工作方式。
我正在尝试修改名称NIT and Arts
为的运算符NIT and ARTS
,当我这样做时,它会返回错误“指定的@name
( NIT and ARTS
) 已经存在,即使它当前不存在。
我正在运行SQL Server 2008R2
。任何帮助都会很棒。谢谢。
在不区分大小写的服务器上,这两个名称是相同的。我不确定您是否为此使用了 UI,但是当我运行以下代码时出现相同的错误:
产量:
如果我们查看 的代码
sp_verify_operator
,我们会发现这里有一个弱点作为不使用代理键的惩罚:它会检查所有现有行的名称匹配,包括您试图更改的行:理想情况下,它应该忽略您试图更改的行,但它不能,因为除了名称之外没有其他方法可以过滤。在区分大小写的排序规则中,上述检查失败,因为该行已经具有该名称。
我们如何解决这个问题?那么你可以重建 msdb 或区分大小写或二进制排序规则的东西,但我认为这更容易,只需手动运行此查询: