我已经在网上看了一会儿,发现了许多类似的问题,但由于某种原因,我似乎无法让这个工作.
我只是想连接到SQL服务器数据库并将查询结果输出到文件 - 请参阅下面的PowerShell脚本.我不确定的是如何将用户ID和密码集成到连接字符串中.
$SQLServer = "aaaa.database.windows.net"
$SQLDBName = "Database"
$uid ="john"
$pwd = "pwd123"
$SqlQuery = "SELECT * from table;"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True; User ID = $uid; Password = $pwd;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$DataSet.Tables[0] | out-file "C:\Scripts\xxxx.csv"
Run Code Online (Sandbox Code Playgroud)
收到以下错误消息:
使用"1"参数调用"Fill"的异常:"此版本的SQL Server不支持Windows登录."
如果我执行以下Powershell命令:
Invoke-Sqlcmd `
-ServerInstance '(local)' -Database 'TestDatabase' `
-Query "select top 1000000 * from dbo.SAMPLE_CUSTOMER" | Out-Null
Run Code Online (Sandbox Code Playgroud)
我看到我的内存使用量不断增加。它使用1GB的内存。
如果再次启动该命令,则内存增加到1.8GB,然后减少到800MB(垃圾回收?),然后再次开始增长。
我尝试按照http://blogs.technet.com/b/heyscriptingguy/archive/2013/07/30/learn-how-to-configure文章中的步骤将PowerShell Shell和插件的内存占用减少到100MB -powershell-memory.aspx,但是我仍然看到内存增加远远超过已配置的100MB。
我有一些问题:
Invoke-Sqlcmd吃掉内存,而不是“忘记”管道中处理的记录