生成创建表的脚本V2.0(PowerShell版)

之前寫有一篇有關《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,完整腳本如下:

 

 

View Code

 

 

 

 測試:

 

 (完.)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值