我想知道是否有人可以帮助我解决sas问题。SAS - 通过源表循环并插入到目标表中
我必须在现有源表中超过10000行并将源表值插入到多个目标表中。我必须从源表中一次插入一行,并确保从父表插入主键(在插入过程中)到子表中(在插入期间)
我正在使用SAS API( SAS EG)
这里是什么源表样子(请注意,这是另一个表中没有数据PROC),该表的名称是具有例如以下的列countrycodelist:
Txn_id statuscode Typecode classcode identifier 001 2 cnt p1 13485 002 2 na n1 13444 003 4 cnt n1 12888
现在,我对目标表有以下代码: 注意:目标表已经创建,我必须插入它们(tableA/tableB)
PROC SQL;
Insert into tableA (TXNID, STATUSCODE,CREATET,LASTUPDATET)
Select TXN_ID,STATUSCODE, datetime(), datetime()
From CountryCodeList
;
退出;
上述代码运行后,状态码被插入到表sim.tableA中,但该表中有一个自动增量的键(pk)。我需要使用这个键来插入到子表中,以便从父表到下面的子表进行正确的连接。
PROC SQL;
Insert into tableB (tableAID,TypeCode,ClassCode,DisplayID,)
Select 1101,TypeCode,ClassCode,Identifier
From CountryCodelist;
QUIT;
我手动插入从表A(1101),这适用于小型表插入最后的PK#,但在大规模插入我需要抓住从TableA的最后PK并插入到tableB的。 SQL具有诸如scope_identity()或使用@@ IDENTITY之类的函数来获得最后插入的密钥,但这些在SAS中不起作用,或者我可能以错误的方式解决它。
此外,我需要从源表(CountryCodelist)一次处理这些插入一行。这个countrycodelist表可以随时间更新,并可能增长超过10k记录
你没有提供足够的细节来回答这个问题,我真的没有想到。你如何识别目标表 - 它们是依赖于数据,还是每次插入到所有目标表或其他东西?你为什么说你需要逐个插入?这是什么样的桌子? – Joe 2014-09-19 19:50:48
这是否仅仅是http:// stackoverflow的副本。com/questions/25894396/passing-a-identity-key-from-one-table-insert-to-another-table-insert-in-sas? – Joe 2014-09-19 19:51:11
你是对的乔,我已经合并了两个并删除了旧的。对于混淆/疏忽 – vbala2014 2014-09-19 21:09:02