[英]Iterate through temp table and insert into another table
我有一個查詢,返回ID
, ORG ID
和NAME
。
碼:
CREATE TABLE #TMP (ORG_ID INT)
INSERT INTO #TMP SELECT ORG_ID FROM [dbo].[fx_Rights_OrgIDs] (331)
SELECT [BRN_ID],[BRN_ORGID],[BRN_Name]
FROM [dbo].[BranchDetails]
WHERE [BRN_ORGID] IN (SELECT ORG_ID FROM #TMP)
DROP TABLE #TMP
返回值:
BRA_ID BRA_ORGID BRA_Name
289 333 Office
290 334 Store
我想要做的是通過迭代和#TMP插入到另一個表: SitePrefix
如果存在價值SitePrefix
不插入。
因此,例如插入BRA_Name
從temp table
到SitePrefix
,如果它存在,然后跳過。
SitePrefix
列如下所示:( SPF_ID
, SPF_Name
, SPF_Prefix
)
SPF_ID
是自動生成的, SPF_Name
應該來自BRA_Name,並且SPF_Prefix
是EMS
嘗試下面的查詢,該查詢使用EXCEPT
這是SQL Server中的SET Difference運算符)
INSERT INTO SitePrefix
SELECT [BRN_Name], 'EMS'
FROM [dbo].[BranchDetails]
WHERE [BRN_ORGID] IN (SELECT ORG_ID FROM #TMP)
EXCEPT
SELECT SPF_Name, 'EMS'
FROM SitePrefix
試試這個,有什么問題然后告訴,
MERGE siteprefix AS T
using (SELECT [brn_id],
[brn_orgid],
[brn_name]
FROM [dbo].[branchdetails]
WHERE [brn_orgid] IN (SELECT org_id
FROM [dbo].[Fx_rights_orgids] (331))) AS s
ON t.spf_name = brn_name
WHEN NOT matched THEN
INSERT (spf_name,
spf_prefix)
VALUES (brn_name,
brn_orgid)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.