将文件内容插入SQL Server表

时间:2011-08-22 02:03:00

标签: sql-server powershell powershell-v2.0

我正在使用简单的PowerShell脚本从Web服务中检索一些XML数据。 XML正在写入文件,但我想修改脚本并将XML插入SQL Server表中。我怎么能这样做?

cls

$apiKey = "00000000-1111-2222-3333-444444444444"
$userName   = "12345678"
$password   = "SamplePassword"

$URI     = "https://www.example.com/api/TestWS.TestService.svc?wsdl" 
$prox = New-WebServiceProxy -uri $URI -namespace WebServiceProxy

$chambersListData = $prox.chambersList($userName, $password, $apiKey, 0, $false, 0, $false)
$chambersListData | Get-Member

for($pageNumber = 1; $pageNumber -lt $chambersListData.pagesCount ; $pageNumber++)
{
    $Page = $prox.chambersList($userName, $password, $apiKey, $pageNumber, $true, 0, $false)
    $Page.chambersList | Export-Clixml ("C:\TEST_EXPORT\chambersList"+$pageNumber+".txt") -Encoding UTF8
}

示例INSERT可能类似于:

INSERT INTO [mydatabase].[test].[TestExportXml]
(
[MethodName],
[XmlData]
)
SELECT
'chambersList',
* here comes the C:\TEST_EXPORT\chambersList"+$pageNumber+".txt file content *

1 个答案:

答案 0 :(得分:2)

是否要首先创建文件,然后将文件导入SQL Server表?如果是这样,您可以按如下方式使用T-SQL OPENROWSET:

INSERT INTO dbo.TestExportXml (MethodName, XmlData)
   SELECT 'chambersList' AS MethodName,*
    FROM OPENROWSET(BULK N'E:\test.xml', SINGLE_BLOB) AS XmlData

您可以使用Invoke-Sqlcmd cmdlet调用T-SQL语句或使用此函数:

http://poshcode.org/2279