【发布时间】:2023-04-02 23:16:01
【问题描述】:
我的数据库中有一个 ADGroup 表,其中包含 Id、Guid 列。 Guid 列表示外部 Active Directory 组的 Guid 属性。
我的数据库中有一个 ADGroupADGroup 表,其中包含 ParentADGroupId、ChildADGroupId 列。这些列表示 ADGroup 表中 ADGroup.Id 列的父/子实例。
我有一个使用表值参数的存储过程。 TVP 具有列 ParentADGroupGuid 和 ChildADGroupGuid,两者都具有 UNIQUEIDENTIFIER 数据类型。这些列代表 AD 中的父/子 Group Guid 关系。
我已将 ADGroup 数据插入到我的数据库中,现在我需要使用下面的 sproc 插入 ADGroupADGroup 数据。在下面的“/* select statement here */”部分中编写用于插入的 select 语句的正确方法是什么?:
CREATE PROCEDURE InsertADGroupGroups
-- Add the parameters for the stored procedure here
@ADGroupADGroupParameter ADGroupADGroupParameter READONLY
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO ADGroupADGroup
(
ParentADGroupId,
ChildADGroupId
)
/* select statement here */
END
更新
这里有一些示例 SQL,可以获取正确的 ADGroup.Id 以插入 TVP 中的 ParentADGroupGuid:
-- get ADGroup.Id for the AD Group Guid in the tvp
SELECT adg.Id
FROM ADGroup adg
JOIN ADGroupADGroupParameter tvp ON tvp.ParentADGroupGuid = adg.Guid
所以现在我需要找出一种简化的方法来更新此查询,以便在 TVP 中也包含 ChildADGroupGuid 的 ADGroup.Id
【问题讨论】:
标签: sql sql-server tsql stored-procedures