用于验证sql语法错误的Powershell脚本
是否存在检测sql语法错误的powershell语法?例如,对于存储过程、SQL查询、函数等,您可以使用用于验证sql语法错误的Powershell脚本,sql,powershell,Sql,Powershell,是否存在检测sql语法错误的powershell语法?例如,对于存储过程、SQL查询、函数等,您可以使用PARSEONLY或NOEXEC包装查询,下面是一个示例: $Server = "SERVER" $Database = "Database" $UserId = "USERID" $Password = "PASSWORD" $QueryToTest= "SELECT * FROM NO_TABLE !!" Function Check-Query-Syntax { Param(
PARSEONLY
或NOEXEC
包装查询,下面是一个示例:
$Server = "SERVER"
$Database = "Database"
$UserId = "USERID"
$Password = "PASSWORD"
$QueryToTest= "SELECT * FROM NO_TABLE !!"
Function Check-Query-Syntax
{
Param(
[Parameter(Mandatory = $true)][string]$query
)
try
{
$sb = New-Object -TypeName "System.Text.StringBuilder"
[void]$classpath.AppendLine("SET NOEXEC ON;")
[void]$classpath.AppendLine($query)
[void]$classpath.AppendLine("SET NOEXEC OFF;")
$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$Server';database='$Database';User Id='$UserId';Password='$Password';trusted_connection=true;"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
$Command.CommandText = $SQLQuery
$Reader = $Command.ExecuteNonQuery()
$Connection.Close()
}
catch
{
Write-Host "Some error"
throw
}
}
Check-Query-Syntax $QueryToTest
参考:
更新:
如果要检查.sql
文件中的查询,请从包含脚本的目录中执行脚本
Get-ChildItem .\*.sql | Select -ExpandProperty FullName | ForEach { $query = (Get-Content -Path $_); Check-Query-Syntax $str }
您正在寻找像Yes这样的在线SQL编译器。需要一个在powershell中编写的语法验证器来验证语法错误。您使用的是哪种RDBMS?有关SQL Server解决方案,请参阅。Microsoft SQL Server您需要为此编写SQL解析器(无论您使用的是什么DBMS),这显然超出了SO问题的范围。您好,感谢您的努力。基本上,我是在尝试检查错误,而不是通过sql Server或其他什么。我的文件夹中有sql脚本。我需要它来检查文件夹中的每个文件。是的。。谢谢你。如果不传递数据库详细信息等,是否不可能?是否有可用的名称空间可以显示错误?@aishwaryamurali您需要连接到SQL Server数据库服务器才能验证查询,因为查询是在服务器端完成的。您所说的“是否有任何可用的名称空间能够以某种方式显示错误”是什么意思?