0
我使用SQL Server 2008,并有一个存储过程,其中一个输入参数的格式为xml。 这个xml是一个名字列表,每个单词没有空格。SQL Server:如何使用Update语句和xml输入
对于每个这些名称,我想检查它们是否已经存在于表中,如果没有,那么它们应该被添加到表中,如果是,那么它们应该在那里更新。
到目前为止,我有部分添加它们,如果它们不存在,但它的工作原理,但我不知道如何实现更新部分。
有人可以帮助我吗?
只是为了证明这将是更新的部分作为一个独立的(如果我有一个输入,而不是XML):
UPDATE RC_PermissionsUsers
SET ntid = @ntid,
departmentID = @departmentID,
role = @role
WHERE ntid = @ntid
我的程序与对插入部分,其余(工作):
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION;
BEGIN
INSERT INTO RC_PermissionsUsers
(
ntid,
departmentID,
[role]
)
SELECT ParamValues.ntid.value('.', 'varchar(255)'),
@departmentID,
@role
FROM @xmlUsers.nodes('/users/ntid') AS ParamValues(ntid)
WHERE NOT EXISTS
(
SELECT ntid
FROM RC_PermissionsUsers
WHERE ntid = ParamValues.ntid.value('.', 'varchar(255)')
)
END
COMMIT TRANSACTION;
END
非常感谢提前,蒂姆。
非常感谢 - 这是伟大的!只有一个问题:我可以在这里使用临时表吗,而不是创建一个真正的表,然后放下它? – user2571510 2014-09-23 18:33:05