首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Merge删除目标表中的所有行

SQL Merge删除目标表中的所有行
EN

Stack Overflow用户
提问于 2016-09-29 06:58:41
回答 2查看 535关注 0票数 2

我正在使用powershell函数来执行SQL合并。我的inserts是有效的,但是我的delete正在删除目标表中的所有行。我的SQL语句看起来像这样,变量被PowerShell替换:

代码语言:javascript
复制
MERGE INTO $($Target) AS Target
USING $($Target)_TEMP AS Source
ON Target.[$($PrimaryKey)] = Source.[$($PrimaryKey)]
WHEN NOT MATCHED THEN
INSERT ($InsertColumns) VALUES ($InsertValues)
WHEN NOT MATCHED BY Source THEN
    DELETE;

你可以在这里看到完整的powershell函数:http://pastebin.com/uWY6VfmU

表数据示例:

代码语言:javascript
复制
domsamgrp  (primary key)        samaccountname  GroupName   Domain  whenchanged
MYDOMAIN\user1\Tableau_Client   user1   Tableau_Client  MYDOMAIN    55:46.0
MYDOMAIN\user2\Tableau_Client   user2   Tableau_Client  MYDOMAIN    55:46.0
MYDOMAIN\user3\Tableau_CMO      user3   Tableau_CMO     MYDOMAIN    55:48.0
MYDOMAIN\user1\Tableau_EDM      user1   Tableau_EDM     MYDOMAIN    55:50.0
MYDOMAIN\user5\Tableau_EDM      user5   Tableau_EDM     MYDOMAIN    55:49.0
EN

回答 2

Stack Overflow用户

发布于 2016-09-29 09:06:06

抱歉,各位。我在代码的其他地方发现了这个问题。我制作的源表只有几条记录。我的合并工作正常。我的代码是用来构建源表的,这是非常错误的。结束这个问题。

票数 0
EN

Stack Overflow用户

发布于 2016-09-29 07:55:13

我认为你的删除的条件是错误的

代码语言:javascript
复制
WHEN **NOT** MATCHED **BY Source** THEN
DELETE;

删除注释

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39758898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档