Sql 语法检查

来源:互联网 发布:极简手表 知乎 编辑:程序博客网 时间:2024/04/24 19:59
Sql 语法检查

做语法检查时要能连得上SQLServer,然后程序如下:
Private   Function   CheckSQL(ByVal   SQLs   As   String)   As   String
On   Error   GoTo   errHandle
        conTADO.Execute   ("SET   PARSEONLY   ON   "   &   SQLs)
        CheckSQL   =   "语法检查通过。"
        conTADO.Execute   ("SET   PARSEONLY   OFF")
        Exit   Function
errHandle:
        CheckSQL   =   Err.Description
        conTADO.Execute   ("SET   PARSEONLY   OFF")
End   Function

其中conTADO是一个已连接好的ADO的Connection对象。
关键在于
SET   PARSEONLY   ON   和   SET   PARSEONLY   OFF,
执行了SET   PARSEONLY   ON   后,再执行的SQL语句,不会真的执行,只是预执行一下,有错误就会返回,完了以后再执行SET   PARSEONLY   OFF,数据库就会恢复原态。



这一种更好一点

USE pubs
GO
PRINT 'Valid query'
GO
-- SET NOEXEC to ON.
SET NOEXEC ON
GO

-- Inner join.
SELECT a.au_lname, a.au_fname, t.title
FROM  authors a
INNER JOIN   titleauthor ta
   ON a.au_id = ta.au_id
INNER JOIN titles t
   ON ta.title_id = t.title_id

GO
-- SET NOEXEC to OFF.
SET NOEXEC OFF
GO
PRINT 'Invalid object name'
GO

原创粉丝点击