Sas Sql查询到Access数据库(.accdb)

Sas Sql查询到Access数据库(.accdb),sas,ms-access-2010,Sas,Ms Access 2010,我现在正在使用一个procsql连接到我的数据库(access.accdb)。到目前为止,我只使用它进行选择查询。这里有一个例子,我用它来工作 proc sql; /* create an ODBC pass-through connection using the Microsoft Office Access 2007 .accdb driver */ connect to ODBC as savesdb (required="driver=Microsoft Access D

我现在正在使用一个procsql连接到我的数据库(access.accdb)。到目前为止,我只使用它进行选择查询。这里有一个例子,我用它来工作

proc sql;
/* create an ODBC pass-through connection using the Microsoft Office Access 2007 .accdb    driver */
connect to ODBC as savesdb
    (required="driver=Microsoft Access Driver (*.mdb, *.accdb); dbq=&dir_BD.;");

 create table MYTABLE as select * from connection to savesdb(select MYID from ACCESSTABLE); 

/* close the pass-through connection */
disconnect from savesdb;
 quit;
现在我想执行一个INSERT INTO查询。我知道下一个代码正在运行

execute( INSERT INTO ACCESSTABLE ( MYID ) VALUES ( 1 )) by savesdb;
问题在于我要指定的INSERT INTO,以插入数据集中的值。换句话说,我有一个有4条记录的数据集,所以我想用数据集中的值调用我的insert into 4次


有没有办法做到这一点

您只需在数据步骤中循环遍历数据集,并将列读取到宏变量。。每列一个var

然后使用这些宏变量调用procsql代码,作为宏定义的输入,宏定义将使用完全传递插入DB

然而,正如所指出的,libref是更简单的方法

谢谢,
Manish

您是否正在寻找中所示的语法?不完全是,我的目标是在查询中插入,但我要插入的数据位于数据集中。下面是一个示例:执行(插入MYACCESSTABLE(MYFIELD1,MYFIELD2,…)从WORK.MYDATASET中选择*。您想使用sql传递的具体原因是什么?简单的方法是创建access数据库的libref,并使用proc append将记录添加到mytable中。