如何解决SQL Server 使用 except 与 Binary_Checksum
我正在使用 sql Server 并希望进行批量更新,但如果已存在相同的值,则不希望重新更新任何行。
例如考虑以下表格及其数据
DECLARE @UpdatedIds TABLE
(
BookId INT
)
CREATE TABLE Book
(
[Id] INT,[Name] NVARCHAR(MAX)
)
INSERT INTO Book([Id],[Name])
SELECT 1,'Book1'
UNION
SELECT 2,'Book2'
UNION
SELECT 3,'Book3'
UNION
SELECT 4,'Book4'
UNION
SELECT 5,'Book5'
CREATE TABLE #Book
(
[Id] INT,[Name] NVARCHAR(MAX)
)
INSERT INTO #Book([Id],'Book1_Changed'
UNION
SELECT 2,'Book2_Changed'
UNION
SELECT 3,'Book5'
我想要的是当我运行以下查询时
UPDATE [BO]
SET [Name] = [BU].[Name]
OUTPUT [INSERTED].[Id] INTO @UpdatedIds([BookId])
FROM [Book] [BO]
INNER JOIN #Book [BU] ON [BO].[Id] = [BU].[Id]
SELECT * FROM @UpdatedIds
@UpdatedIds 应该有 1 和 2 的记录,而不是 3、4 或 5
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。