【问题标题】:Retrieve results of running query with invoke-sqlcmd使用 invoke-sqlcmd 检索运行查询的结果
【发布时间】:2021-01-08 23:52:25
【问题描述】:

我有这个脚本,我可以用它来创建登录名并将 sysadmin 分配给支持组。 它并不完美,但它确实有效。

但是问题是我没有收到运行它的任何反馈。我需要稍后检查登录是否已成功创建,这违背了它的目的。

是否有任何简单的方法可以从 sql 打印消息是否操作成功? csv 文件如下所示:

名称,环境

server1,prd

server2,qas

$servers = Import-Csv 'C:\Users\me\Desktop\servers.csv'

foreach ($server in $servers) {
    $seperate = $server.name.split('\')
    $serverName = $seperate[0]
    $instanceName = $seperate[1]
    $eServAccount = 'domain\srv-'+$serverName+''
    $eServAccountLogin = '[domain\srv-'+$serverName+']'

    if($server.env -eq 'PRD') {
        $suppGrp = 'domain\DBA PRD'
        }
    elseif($server.env -eq 'QAS') {
        $suppGrp = 'domain\DBA QAS'
        }
    elseif($server.env -eq 'DEV') {
        $suppGrp = 'domain\DBA DEV'
        }

$suppGrpLogin = '['+$suppGrp+']'
$queryString = "
IF NOT EXISTS (SELECT loginname FROM master.dbo.syslogins 
    WHERE name = '$eServAccount')
BEGIN
    CREATE LOGIN $eServAccountLogin FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    
End

IF EXISTS (SELECT loginname FROM master.dbo.syslogins 
    WHERE name = '$eServAccount') AND 
        (SELECT IS_SRVROLEMEMBER ( 'sysadmin', '$eServAccount')) = 0
BEGIN
    ALTER SERVER ROLE [sysadmin] ADD MEMBER $eServAccountLogin
END
   
    
IF NOT EXISTS (SELECT loginname FROM master.dbo.syslogins 
    WHERE name = '$suppGrp')
BEGIN
    CREATE LOGIN $suppGrpLogin FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    
End

IF EXISTS (SELECT loginname FROM master.dbo.syslogins 
    WHERE name = '$suppGrp') AND 
        (SELECT IS_SRVROLEMEMBER ( 'sysadmin', '$suppGrp')) = 0
BEGIN
    ALTER SERVER ROLE [sysadmin] ADD MEMBER $suppGrpLogin
END
"    
    
    
Invoke-Sqlcmd -ServerInstance $server.name -Database master -Query $queryString

}

【问题讨论】:

    标签: sql sql-server powershell sqlcmd


    【解决方案1】:

    使用invoke-sqlcmd你可以使用参数-OutputSqlErrors $true 来报告错误,如果你没有错误应该是成功的;-)

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2017-08-03
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多