我有一个调用SQL脚本的Power-shell脚本。这是目前正在工作,但在我的SQL脚本中,我有一些硬编码的参数,我想通过PowerShell传递给SQL脚本。如何通过Powershell将参数传递给SQL脚本
所以这是剪断,它从Power-shell脚本
function ExecSqlScript([string] $scriptName)
{
$scriptFile = $script:currentDir + $scriptName
$sqlLog = $script:logFileDir + $scriptName + "_{0:yyyyMMdd_HHmmss}.log" -f (Get-Date)
$result = sqlcmd -S uk-ldn-dt270 -U sa -P passwordhere3! -i $scriptFile -b | Tee-Object - filepath $sqlLog
if ($result -like "*Msg *, Level *, State *" -Or $result -like "*Sqlcmd: Error:*")
{
throw "SQL script " + $scriptFile + " failed: " + $result
}
}
try
{
ExecSqlScript "restoreDatabase.sql"
}
catch
{
//Some Error handling here
}
这是从SQL
USE MASTER
GO
DECLARE @dbName varchar(255)
SET @dbName = 'HardCodedDatabaseName'
所以我想通过对DBNAME价值,任何想法?
最好使用sql变量,因为这有助于防止SQL注入 – Tbonechk27