Thanks LinusH and DBailey i used the above suggested method and it worked. This is what i did : proc sql; connect to SQLSVR (user=&sql_user_id. password="&sql_password." datasrc=&sql_path. insertbuff = 10000); create table sql_sgr.all_renewals as Select distinct grpmain, datepart(rnwl_dt) as rnwl_dt format=date9., agency, agency_agent, mkt_rep, rnwl_status_cd from sm_grp.be_ALL_RENEWALS; execute ( merge into sml_emp_exp_rpt a using all_renewals b on (a.rnwl_dt=b.rnwl_dt and a.grpmain=b.grpmain) when matched then update set a.agency=b.agency, a.agency_agent=b.agency_agent, a.mrkt_rep_id=b.mkt_rep, a.rnwl_status_cd=b.rnwl_status_cd; ) by SQLSVR; execute (drop table all_renewals) by SQLSVR; disconnect from SQLSVR; quit; Now it takes only about 5 secs to update 135559 rows of the sql server table.
... View more