首页 > 解决方案 > 将字符串转换为 SSRS 订阅的唯一标识符时遇到问题

问题描述

我们有一个离开公司的 DBA。那个 DBA 创建了一堆 SSRS 订阅,当他们的 Active Directory 帐户被关闭时,所有订阅都失败了。我正在与 IT 部门合作创建一个通用的活动目录帐户,用于管理所有订阅,这样就不会再发生这种情况。然而,有一些政治因素正在发生,所以与此同时,我需要更改这些订阅属于谁,这样报告才能继续生成。我正在运行此代码:

 DECLARE @OldUserID uniqueidentifier
 DECLARE @NewUserID uniqueidentifier
 SELECT @OldUserID = CAST( UserID as UNIQUEIDENTIFIER) FROM dbo.Users WHERE UserID ='Domain\First.Last'
 SELECT  @NewUserID= CAST( UserID as UNIQUEIDENTIFIER) FROM dbo.Users WHERE UserName = 'Domain\NewFirst.NewLast'
 UPDATE dbo.Subscriptions SET OwnerID = @NewUserID WHERE OwnerID = @OldUserID

除了我得到错误

“消息 8169,级别 16,状态 2,第 8 行从字符串转换为唯一标识符时转换失败。”</p>

所以我拿出单引号并尝试了这个:

DECLARE @OldUserID uniqueidentifier
 DECLARE @NewUserID uniqueidentifier
 SELECT @OldUserID = CAST( UserID as UNIQUEIDENTIFIER) FROM dbo.Users WHERE UserID = Domain\First.Last
 SELECT  @NewUserID= CAST( UserID as UNIQUEIDENTIFIER) FROM dbo.Users WHERE UserName = Domain\NewFirst.NewLast
 UPDATE dbo.Subscriptions SET OwnerID = @NewUserID WHERE OwnerID = @OldUserID

我得到了错误:

“消息 102,级别 15,状态 1,第 3 行不正确

'\' 附近的语法。消息 102,级别 15,状态 1,第 4 行 '\' 附近的语法错误。”</p>

当我用谷歌搜索我的问题时,我似乎找不到答案,所以我认为这是我想念的非常简单的事情。如有任何帮助,我将不胜感激,以便让这些订阅恢复并运行。

标签: sql-serverreporting-servicesdatabase-administration

解决方案


推荐阅读