2016-07-04 82 views
0

我有一個vb.net 2010項目,它可以遠程運行一個準備好的SSIS包,將SAS 9.3數據集導出到SQL Server 2012數據庫中。據我所知,過程測試很好。將SAS數據集移入SQL Server而不使用SSIS包

但是,有人告訴我不要使用它(因爲SSIS包不可靠嗎?),那麼有沒有其他方法可以做到這一點?

我已經看過了SAS ODBC,看看我是否可以從SAS最終做到這一點,但我不知道該DSN的說法,我擡頭一看example是這樣的:

LIBNAME SQL ODBC DSN='sqlsrv_nt' schema=MSSQLTips; 

而且不確保DSN適用於我,我不是我的工作站上的管理員,所以我無法使用ODBC設置太多 - 我不確定這是要走的路。

+0

原諒我,但你有沒有嘗試過這個命令,如果是的話,出現了什麼錯誤? – Parfait

+0

我不確定的語法,但只是發現了設置ODBC連接到SQL服務器的說明,現在嘗試。謝謝。 – FashionPolice

回答

1

您可以使用驅動程序或DSN(具有所有配置/設置的自定義快捷數據源連接對象)。連接後,將數據從本地附加到遠程源。

* WITH DSN; 
libname mssqldata odbc datasrc="DSN Name" user="username" password="password"; 

* WITH DRIVER; 
libname mssqldata odbc complete="driver={SQL Server}; Server=servername; user=username; pwd=password; database=databasename;"; 

** APPEND TO DATABASE TABLE; 
proc datasets; 
    append base = mssqldata.DBTable 
    data = Work.SASdataset 
    force; 
quit; 

** UN-ASSIGN ODBC LIBRARY; 
libname mssqldata clear; 

將庫分配給數據庫時非常小心,因爲它是實時連接而不是副本。因此,修改/添加/刪除將立即反映到服務器。

+0

是的。我的目標是模仿SSIS包的功能,將sas數據集複製(不覆蓋)。有關用戶名和密碼的一件事:我可以使用SQL Server的可信連接嗎?當我直接連接到我的VS項目中的SQL時,我習慣這樣做,所以我從來不必提供名稱和密碼。 – FashionPolice

+0

好聽!很高興它解決了,我可以提供幫助。 – Parfait

+0

儘管我注意到它運行需要更長的時間,然後SSIS包......如果他們需要它,他們會得到它。但是,感謝您的快速幫助! – FashionPolice

0

你不需要是管理員。在用戶配置文件下設置DSN連接。然後分配您的libname,並且可以根據權限允許上載或更新SQL Server中的數據。

您的libname語句看起來正確。

+0

好的,按照您在這裏通過說明建議的嘗試。 http://support.sas.com/techsup/technote/ts765.pdf將繼續進行進一步測試。謝謝。 – FashionPolice

相關問題