星期五, 12月 18, 2009

SQL Server Export to Access(1)

聽說這次主管會議的時候,老闆說:IT部門最厲害了,什麼東西都用的出來。我哩勒,是平常我們很安分守己的工作做好,沒給妳出包過,在加上臨時丟下來的工作很不情願的把他吞下來,所以得到的結論嗎?如果是這樣,請反應到我的薪資或是紅利來吧!

於是乎,資料處理部門的主管就提到,有沒有可能他們要處理的資料,可以不用透過我們部門,直接在系統中產生他們所要得資料,並且從SQL Server存到Access中,這樣SAS才能吃呀!

天呀!!!!所以是要自動產生Access檔案的意思摟,好吧,如果是這樣,可能還有機會辦到吧,就開始了兩天在網路上混水摸魚找資料了,不找還好,一找才發現,原來這是有難度的,誰會要資料從SQL Server還倒出來Access,再者,有很好用的圖形化介面可以用呀,偏偏我就只能用T-SQL去產生Access檔案。

在網路上看到一堆,結果我測試的結果,現在目前只成功轉成CSV

EXEC master..xp_cmdshell 'BCP master..sysobjects out c:\sysobjects.txt -c -t, -T -S "localhost\SQLEXPRESS"'

上面這一段是可以把master資料庫中sysobjects所有資料都丟到sysobjects.txt中,而且是自動建立sysobjects.txt的

而離我要的Access看來很近了,

master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'

網路上傳說中的一句可以用的話,不管我怎麼改,怎麼用,還是不能自動產生檔案,

反而是如果我的Access已經存在,而且我的目標Table也存在,那下面這段是可行的

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\temp.mdb';'admin';'',PG)
SELECT * FROM PG ORDER BY PK

temp.mdb事先建立好,裡面也新增好一個PG的Table,接著我把SQL Server其中一個資料庫中的PG匯出到temp.mdb中的PG中是OK的

看來,如果自動產生這條路不能走的話,我就只能走這條路了

沒有留言: