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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值