我有一个脚本,每天会遍历一个目录中的几千个文件,并希望在foreach循环中处理每个文件时更新SQL Server表中的详细信息。
我已经使用以下内容使其正常工作:
Invoke-Sqlcmd -Query "INSERT INTO $dbTable (name, date, worknum, identifier) VALUES ('$name','$date','$worknum','$identifier')"
-ServerInstance $dbHost -Database $dbName -ErrorAction Stop
虽然这样做可以正常工作,但我想知道将此方法更改为在文件处理开始之前建立SQL Server连接并在脚本结束时关闭是否有任何好处?类似于这样的操作。
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=$dbHost;Database=$dbName;Integrated Security=True;"
<foreach loop>
$SqlConnection.Close()
我不关心脚本的运行速度,因为它已经相当快了,我更担心的是对数据库性能的影响。