2015-12-30 80 views
0

我下面Powershell的調用,SQLCMD和輸入

$result = Invoke-Sqlcmd -InputFile $sqlfile -ServerInstance $DB 

的例子SQL中使用Invoke-SQLCMD命令$ SQLFILE內面臨這就是問題所在內的多個選擇語句是:

SELECT TOP 2 FROM [TABLE1] 
SELECT TOP 3 FROM [TABLE2] 

我之後的輸出類型將是一個接一個的兩個表的單個結果。

例如..

TABLE1 
data1 
data2 
TABLE2 
data1 
data2 
data3 

這甚至可能嗎?

我一直在使用調用-Sqlcmd2認爲一個PSCustomObject數據類型會更容易..玩

$result = Invoke-Sqlcmd2 -InputFile $sqlfile-ServerInstance $DB -As PSObject 

然而,這似乎只處理第一選擇查詢並忽略第二個試圖同。

回答

0

你有沒有考慮過在SQL文件中做CROSS JOIN? 考慮從以下幾點:here

你會做這樣的事情:

SELECT * FROM Table1 
CROSS JOIN Table2 

這會給你兩個表無論之間相關聯的所有數據是否有關係或沒有。如果你想通過關係加入,檢查一些其他的SQL聯接,如左加入,內部聯接等

+0

如果你想添加特定的列,你只需將*替換爲列名稱,如col1 ,col2 ..等 –

+0

道歉,我應該更具體的SQL。 一個真實的例子,這將如何工作不會真的與任何聯接工作。 例如, '從#mytable1' 選擇transtime,量,ACCOUNTID'從#mytable1' 總和數據將沒有真正的工作SELECT COUNT(帳戶),總和(金額)不幸被加入。 在這種情況下,兩個輸出的目的是 1.)顯示臨時表中的一些數據#mytable1 2.)顯示accountid列的計數和amount列的彙總。 你說的沒錯,這個解決方案在其他情況下可以工作 – Inammathe

+0

啊,好吧,在這種情況下,如果他們適合你的情況,可能需要研究存儲過程,只要把這些與Powershell掛鉤我不太熟悉與,[這](http://stackoverflow.com/questions/43249/t-sql-stored-procedure-that-accepts-multiple-id-values/43767)可能有助於一些SQL –

相關問題