0
我想創建一個SQL語句,以基於select語句的結果插入多行到表中。使用聲明和選擇結果插入多行到表中
這樣做的目的是我們有2個表格應該包含與相同數據相關的數據行。我創建了一個語句來標識一個表中不在另一個表中的所有行,並在第二個語句中將這些行插入到第二個表中。
這兩項工作分別,我遇到的問題是,當我嘗試結合他們希望能在一個運行所有的插入去它成功,但只在搜索結果的第一行
IF OBJECT_ID('tempdb..#retentiontemp') IS NOT NULL
/* Then it exists */
DROP TABLE #retentiontemp
Select *
Into #retentiontemp
From
(SELECT VCHRNMBR,dex_row_id
FROM JCRFP100
WHERE VCHRNMBR NOT IN (SELECT VCHRNMBR FROM JC10500)
) As VCHRNMBR
declare @VENDORID char(15),@VCHRNMBR char(20), @DOCTYPE smallint, @BACHNUMB char(15), @ACTINDX int, @TAXDTLID char(15), @TAXAMNT numeric(19,5), @ORTAXAMT numeric(19,5), @PCTAXAMT numeric(19,5), @ORPURTAX numeric(19,5), @TDTTXPUR numeric(19,5), @ORTXBPUR int, @TXDTTPUR numeric(19,5), @ORTOTPUR numeric(19,5), @POSTED tinyint;
select
@VENDORID = VENDORID,
@VCHRNMBR = VCHNUMWK,
@DOCTYPE = DOCTYPE,
@BACHNUMB = BACHNUMB,
@TAXDTLID = Taxschid,
@TAXAMNT = TAXAMNT,
@TDTTXPUR = CURTRXAM,
@ORTXBPUR = CURTRXAM,
@TXDTTPUR = CURTRXAM,
@ORTOTPUR = CURTRXAM,
@ORTAXAMT = @TAXAMNT,
@PCTAXAMT = @TAXAMNT,
@ORPURTAX = @TAXAMNT,
@POSTED = POSTED
from jcrfp100 where dex_row_id in (select dex_row_id from #retentiontemp)
If @TAXAMNT Is Null
set @ACTINDX = '27'
Else
set @ACTINDX = '28'
INSERT INTO PM10500 (VENDORID, VCHRNMBR, DOCTYPE, BACHNUMB, TAXDTLID, BKOUTTAX, TAXAMNT, ORTAXAMT, PCTAXAMT, ORPURTAX, FRTTXAMT, ORFRTTAX, MSCTXAMT, ORMSCTAX, ACTINDX, TRXSORCE, TDTTXPUR, ORTXBPUR, TXDTTPUR, ORTOTPUR, CURRNIDX, POSTED) VALUES (@VENDORID, @VCHRNMBR, @DOCTYPE, @BACHNUMB, @TAXDTLID, '0', @TAXAMNT, @ORTAXAMT, @PCTAXAMT, @ORPURTAX, '0', '0', '0', '0', @ACTINDX, '0', @TDTTXPUR, @ORTXBPUR, @TXDTTPUR, @ORTOTPUR, '0', @POSTED)
INSERT INTO JC10500 (VENDORID, VCHRNMBR, DOCTYPE, BACHNUMB, TAXDTLID, BKOUTTAX, TAXAMNT, ORTAXAMT, PCTAXAMT, ORPURTAX, FRTTXAMT, ORFRTTAX, MSCTXAMT, ORMSCTAX, ACTINDX, TRXSORCE, TDTTXPUR, ORTXBPUR, TXDTTPUR, ORTOTPUR, CURRNIDX, POSTED) VALUES (@VENDORID, @VCHRNMBR, @DOCTYPE, @BACHNUMB, @TAXDTLID, '0', @TAXAMNT, @ORTAXAMT, @PCTAXAMT, @ORPURTAX, '0', '0', '0', '0', @ACTINDX, '0', @TDTTXPUR, @ORTXBPUR, @TXDTTPUR, @ORTOTPUR, '0', @POSTED)
select * from PM10500 where VCHRNMBR in (select VCHRNMBR from #retentiontemp)
select * from JC10500 where VCHRNMBR in (select VCHRNMBR from #retentiontemp)
[SQL服務器,請選擇到現有的表]的可能的複製(http://stackoverflow.com/questions/4101739/sql-server-select-into-existing-table) –