我有2台服务器2009和2012服务器。我已经将2012服务器数据中的数据插入到新的临时表中,现在我必须将2009服务器数据插入到同一个临时表中。如果2009年数据记录与现有记录匹配,那么我不想插入该记录,并且所有其他数据应该插入到分段中。
答案 0 :(得分:1)
尝试以下查询
使用NOT EXISTS
:
INSERT INTO TABLE_2
(id, name)
SELECT t1.id,
t1.name
FROM TABLE_1 t1
WHERE NOT EXISTS(SELECT id
FROM TABLE_2 t2
WHERE t2.id = t1.id)
使用NOT IN
:
INSERT INTO TABLE_2
(id, name)
SELECT t1.id,
t1.name
FROM TABLE_1 t1
WHERE t1.id NOT IN (SELECT id
FROM TABLE_2)
答案 1 :(得分:0)
只是替代使用连接而不是退出的答案:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Town</th>
<th>Date</th>
<th>Stat1</th>
<th>Stat2</th>
<th>Stat3</th>
<th>Stat4</th>
</tr>
</thead>
<tbody ng-repeat="(key, value) in grouped">
<tr ng-repeat="val in value.array">
<td>{{val.id}}</td>
<td>{{val.town}}</td>
<td>{{val.nom}}</td>
<td>{{val.date}}</td>
<td>{{val.stat1}}</td>
<td>{{val.stat2}}</td>
<td>{{val.stat3}}</td>
<td>{{val.stat4}}</td>
</tr>
<tr class="total">
<td>TOTAL</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>{{value.total.totalStat1}}</td>
<td>{{value.total.totalStat2}}</td>
<td>{{value.total.totalStat3}}</td>
<td>{{value.total.totalStat4}}</td>
</tr>
</tbody>
</table>
<div>
Total stat 1 : {{total.totalStat1}} -
Total stat 2 : {{total.totalStat2}} -
Total stat 3 : {{total.totalStat3}} -
Total stat 4 : {{total.totalStat4}} -
</div>
</div>
当多个临时表或“补充”表(添加来自其他表的数据)时,这可以更容易阅读。
的问候,
塞尔吉奥
答案 2 :(得分:0)
为server 2008创建链接服务器。编写OPENQUERY
以访问服务器2008表。
现在使用SSIS的执行SQL任务并使用除服务器2012表之外的SQL Server 2008表。