准备语法无效的查询

时间:2011-05-26 13:44:47

标签: sql ado.net prepared-statement

我想检查SQL查询的语法。我想用DbCommand.Prepare方法做准备。

不幸的是,没有错误或异常。

例如:SELECT * FORM table

有没有办法在不执行查询的情况下检查语法?

为了完善它,它必须在SQL Server,Oracle和IBM DB2上运行

2 个答案:

答案 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并查看会发生什么。