1
我有一個Powershell腳本成功地連接到SQL Server數據庫並執行過程。 SQL過程包含一個選擇如下:帶參數的Powershell腳本執行SQL過程已截斷輸出
SELECT @sql AS 'ColDemo1'
變量@sql
是nvarchar(max)。我想@sql的全部內容返回到一個新的SQL文件,但我只得到了第一行和不必要的列標題如下:
ColDemo1
------------
First line of data...
PowerShell腳本如下:
$server = "SERVER\DEMO"
$database = "dbDemo"
$pZero = "PVal0"
$pOne = "PVal1"
$pTwo = "PVal2"
$pThree = "PVal3"
function Run-SQLUSP {
param (
$pZero,
$pOne,
$pTwo,
$pThree
)
$conn = New-Object System.Data.SqlClient.SqlConnection("Server=${server};Database='${database}';Integrated Security=TRUE")
$conn.Open()
$cmd = $conn.CreateCommand()
$cmd.CommandText = "dbo.demoSp '$pZero', '$pOne', '$pTwo', '$pThree'"
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
$dataset = New-Object System.Data.DataSet
[void]$adapter.Fill($dataset)
$dataset.tables[0]
}
Run-SQLUSP $pZero $pOne $pTwo $pThree | Out-File "c:\DemoFolder\DemoScriptName.sql" -width 8000
如何修改我的Powershell腳本以將輸出的所有行返回到新的sql文件?在SSMS中執行過程時,結果集將返回到單個表格單元格中(不是多行)。被要求
嘗試使用'出口csv',而不是'出file' – brendan62269
@ brendan62269感謝,使用'出口csv'避免截斷問題。但是結果仍然包括用引號引起的列標題,數據也用引號引起來。我怎樣才能返回第一個單元格值?注意。以及更改'Out-File',我也刪除了'-width 8000'並添加了'-NoTypeInformation'。 – Fletch
我嘗試在函數內追加'.rows [0] [0]'到'$ dataset.tables [0]',但是這會返回長度引號和一個我認爲是字符串長度的數字,也用引號。我可以使用類似的東西來返回第一個單元格的值嗎? – Fletch