使用PowerShell在SQL Server DB中插入字符串值.

Rav*_*obo 4 sql powershell sql-server-2008

我有一个很长的值列表需要插入单列SQL服务器表中.我使用以下代码.但是,这需要很长时间.有没有更简单的方法来实现这一目标?

$list = 'aaa','bbb','cccc','ddddd','eeeee','ffff'....

    foreach($i in $list) {
        $sql ="if not exists (select 1 from [table_nm] where column_nm = '$i' ) 
            begin 
              insert table_nm
              select '$i'
            end
            " 

        Invoke-Sqlcmd -ServerInstance $server -Database db_nm -query $sql               
        }
Run Code Online (Sandbox Code Playgroud)

Raf*_*Raf 10

试试这个,它将搭乘一个连接,这样你就可以避免昂贵的开销,因为@vonPryz:

$list = 'aaa','bbb','cccc','ddddd','eeeee','ffff'....
$server = "server1"
$Database = "DB1"

$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$Server';database='$Database';trusted_connection=true;"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
foreach($i in $list) {
    $sql ="if not exists (select 1 from [table_nm] where column_nm = '$i' ) 
        begin 
        insert table_nm
        select '$i'
        end
    " 
    $Command.CommandText = $sql
    $Command.ExecuteReader()
}
$Connection.Close()
Run Code Online (Sandbox Code Playgroud)