2009-11-25 60 views
2

我需要導出;從ms sql到ms訪問數據庫的不同表的多個查詢。將多個查詢導出到不同的表格

我知道這是可能採取的每個查詢,並將其導出到一個表,並重復同樣爲不同的查詢。

我想知道的是......它可以在一個伸展做什麼?

假設有三個查詢和每個查詢輸出需要在不同的表......在這種情況下,是有可能做一個單一的出口?

回答

0

我不知道你的意思。你可以把所有的SQL語句到一個批處理命令,而不是獨立執行的每一個,e.g:

insert into Table1 select ... 
insert into Table2 select ... 
insert into Table3 select ... 
+0

假設有三個查詢和每個查詢輸出需要在不同的表......在這種情況下,是有可能做一個單一的出口? – SmartestVEGA 2009-11-25 10:24:18

+0

問題在於從哪裏運行,但Access/Jet/ACE無法在批處理中運行多個SQL語句 - 一次只能執行一個。鑑於Access/Jet/ACE的性質,即沒有服務器端序列化更新的過程,它應該是理所當然的,你不能這樣做(或者至少,你不能安全可靠地做到這一點)不要害怕破壞你的數據)。 – 2009-11-26 04:31:03

+0

呵呵。每當我看到Access,我發現它不能做的另一件事。謝謝大衛。 :-) – 2009-11-26 08:28:57

0

這些是直通查詢或Jet(訪問)查詢?如果它們是Jet查詢,則應該創建make表查詢並通過VBA將它們作爲批處理運行。如果您願意,可以在VBA中輕鬆構建make表查詢自己。下面是一個從鏈接的SQL Server表中獲取連接字符串的示例,但您可以填寫自己的連接字符串,它應該具有與鏈接表的連接屬性相同的格式。

Dim db As Database 
Dim strSQL As String 
Dim strConnect As String 

Set db = CurrentDb 
strConnect = db.TableDefs("dbo_test").Connect 

strSQL = "INSERT INTO NewAccessTable (ID, Descr) " _ 
& "SELECT ID, Descr FROM [" & strConnect & "].[test] " 

db.Execute strSQL, dbFailOnError 
Debug.Print db.RecordsAffected 
1

您可以將各個導出保存爲SSIS包,然後將它們合併到一個包中。

的出口甚至可以並行運行。

相關問題