首页 > 代码库 > PowerShell使用 invoke-sqlcmd 连行脚本文件,并向脚本文件存入参数
PowerShell使用 invoke-sqlcmd 连行脚本文件,并向脚本文件存入参数
原文 http://stackoverflow.com/questions/16654866/invoke-sqlcmd-inputfile-and-variable
Init.ps1
$DATABASEFILENAME = "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008INSTANCE\MSSQL\DATA\myDB.mdf" $DATABASELOGNAME = "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008INSTANCE\MSSQL\DATA\myDB_log.ldf" $DBUSEROWNER = "domain\spsetup"
CreateDatabase.ps1
try { $createDatabaseScript = ($scriptsFolder,$eachRelease,$DeployEnvironment,"Config" -join "\") + "\JM SiteRequest Database.sql" $sqlVariable = "DATABASEFILENAME=$DATABASEFILENAME", "DATABASELOGNAME=$DATABASELOGNAME", "DBUSEROWNER=$DBUSEROWNER" Invoke-Sqlcmd -ServerInstance "$MySQLServer" -InputFile "$createDatabaseScript" -ErrorAction Stop -Variable $sqlVariable } catch [Exception] { Write-Error "Database error: $_.Exception" }
$sqlVariable 对参数声名很挑剔。变量之前或之后不能有空格。
注意 $sqlVariable 里变量前后不能有空格
SQL script
CREATE DATABASE [SiteRequestDB] ON PRIMARY ( NAME = N'SiteRequestDB', FILENAME = N'$(DATABASEFILENAME)' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'SiteRequestDB_log', FILENAME = N'$(DATABASELOGNAME)' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO
在sql脚本中对$sqlVariable 中变量调用方式 $(变量名)
PowerShell使用 invoke-sqlcmd 连行脚本文件,并向脚本文件存入参数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。