我想检查SQL查询的语法。我想用DbCommand.Prepare方法做准备。
不幸的是,没有错误或异常。
例如:SELECT * FORM table
有没有办法在不执行查询的情况下检查语法?
为了完善它,它必须在SQL Server,Oracle和IBM DB2上运行
答案 0 :(得分:2)
对于SQL Server,您可以使用SET FMTONLY
和/或SET NOEXEC
set fmtonly on
go
SELECT * FORM table
go
set fmtonly off
答案 1 :(得分:2)
通常,只有您正在使用的数据库才会知道给定的查询是否有效。一个标准和可移植的技巧是添加一个WHERE子句,保证不会做任何事情,然后执行查询;例如,执行SELECT * FORM table WHERE 1=0
并查看会发生什么。