之前寫有一篇有關《PowerShell应用之-生成创建表的Transact-SQL脚本》,今早再拿來應用的時候,發現無法按照指定的某一些表來生成腳本。

現在特補充這一功能,先在原來腳本開頭位置,增加一個變量$TablesList:

 

<#===========================================#>
#
#生成创建表的脚本V2.0,包含Constraints,Indexes,Triggers


$serverInstance="PC20\SQL2005DE" 
$userName="sa"
$password="pc202005"
$DataBase="PeripheralDataCollection"
$SrciptOutputPath="E:\"
$TablesList="" #要生產腳本的表,多表使用逗号“,”分隔

<#===========================================#>

再在

#获得数据库中的用户表
    $Tables=((New-Object "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection).databases[$DataBase]).tables | Where-Object -FilterScript{$_.IsSystemObject -eq $False}

 增加篩選條件:

#获得数据库中的用户表
    $Tables=((New-Object "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection).databases[$DataBase]).tables | Where-Object -FilterScript{($_.IsSystemObject -eq $False-and ( ( ($TablesList -split ","-contains $_.name) -or ( $TablesList -eq "") ) }
   

 主要增加代碼:

-and ( ( ($TablesList -split ","-contains $_.name) -or ( $TablesList -eq "") )

 

 其中 ($TablesList -split ",")  應用到表達式"-split"把$TablesList  轉換成列表形式,再通過“-contains”表達式,判斷轉換列表中是否包含有當前返回的table名。

 -or ( $TablesList -eq "") 部份只是應用于當$TablesList為空的情況。

 

 

生成创建表的脚本V2.0,完整腳本如下:

 

 


    }

}

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2021-11-30
  • 2021-07-03
  • 2021-06-30
  • 2022-12-23
  • 2021-10-02
猜你喜欢
  • 2021-10-31
  • 2021-09-08
  • 2021-07-29
  • 2022-01-14
  • 2022-01-12
  • 2021-11-27
  • 2021-08-20
相关资源
相似解决方案