zoukankan      html  css  js  c++  java
  • PowerShell 连接SQL Server 数据库

    PowerShell 连接SQL Server 数据库 2


     

    PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本。工作中整理的一小段脚本,后来没有用上,先记录在这里:

    1. 建立数据库连接
    2. 查询返回一个DataTatble对象
    3. 执行一条SQL语句
    4. 通过事物执行多条SQL语句
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    #
    # 建立数据库连接.
    #
    function New-SqlConnection([string]$connectionStr)
    {
        $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
        $SqlConnection.ConnectionString = $connectionStr
        try{
            $SqlConnection.Open()
            Write-Host 'Connected to sql server.'
            return $SqlConnection
        }
        catch [exception] {
            Write-Warning ('Connect to database failed with error message:{0}' -f ,$_)
            $SqlConnection.Dispose()
            return $null
        }
    }
     
    #
    # 查询返回一个DataTable对象
    #
    function Get-SqlDataTable
    {
        param
        (
        [System.Data.SqlClient.SqlConnection]$SqlConnection,
        [string]$query
        )
        $dataSet = new-object "System.Data.DataSet" "WrestlersDataset"
        $dataAdapter = new-object "System.Data.SqlClient.SqlDataAdapter" ($query,$SqlConnection)
        $dataAdapter.Fill($dataSet) | Out-Null
        return $dataSet.Tables | select -First 1
    }
     
    #
    # 执行一条SQL命令
    #
    function Execute-SqlCommandNonQuery
    {
        param
        (
        [System.Data.SqlClient.SqlConnection]$SqlConnection,
        [string]$Command
        )
        $cmd = $SqlConnection.CreateCommand()
        try
        {
            $cmd.CommandText = $Command
            $cmd.ExecuteNonQuery() | Out-Null
            return $true
        }
        catch [Exception] {
             Write-Warning ('Execute Sql command failed with error message:{0}' -f $_)
             return $false
        }
        finally{
            $SqlConnection.Close()
        }
    }
     
    #
    # 通过事物处理执行多条SQL命令
    #
    function Execute-SqlCommandsNonQuery
    {
        param
        (
        [System.Data.SqlClient.SqlConnection]$SqlConnection,
        [string[]]$Commands
        )
        $transaction = $SqlConnection.BeginTransaction()
        $command = $SqlConnection.CreateCommand()
        $command.Transaction = $transaction
        try
        {
            foreach($cmd in $Commands) {
                #Write-Host  $cmd -ForegroundColor Blue
                $command.CommandText = $cmd
                $command.ExecuteNonQuery()
            }
            $transaction.Commit()
            return $true
        }
        catch [Exception] {
             $transaction.Rollback()
             Write-Warning ('Execute Sql commands failed with error message:{0}' -f $_)
             return $false
        }
        finally{
            $SqlConnection.Close()
        }
    }
  • 相关阅读:
    【uoj3】 NOI2014—魔法森林
    【bzoj2002】 Hnoi2010—Bounce 弹飞绵羊
    【hdu4010】 Query on The Trees
    【uoj129】 NOI2015—寿司晚宴
    【bzoj2877】 Noi2012—魔幻棋盘
    【bzoj2876】 Noi2012—骑行川藏
    【bzoj2875】 Noi2012—随机数生成器
    【codeforces 235E】 Number Challenge
    【bzoj2154】 Crash的数字表格
    【bzoj3529】 Sdoi2014—数表
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/14205251.html
Copyright © 2011-2022 走看看