sql

时间:2015-10-01 11:05:47

标签: sql

我有一些DML语句,想要检查这些语句是否与我在数据库中的表名相对应。

例如,假设我有一个包含以下表格的数据库:

1)Emp

2)员工

3)订单

4)订单

然后是 DML声明insert into Emp values(<some values>)

我想检查这个语句是否是我的一个表的insert语句,并且还想要识别它被触发的表。 (我将从sys.tables中检索表名,以防你想知道)

我能够提出的模式(例如,对Emp表中的插入语句)是:

<statement> LIKE 'INSERT%[[<space><tab>'+char(13)+char(10)+']Emp[<space><tab>'+char(13)+char(10)+']]%'

这是考虑表名可能出现在SQL语句中的所有方式,即它将在其周围有空格,或者可能是回车等。表的名称也可以被{{1包围}}。我已经努力检查了这一点。

但是,上述模式无法正常工作。但是,如果我要将模式更改为

[]即摆脱一个<statement> LIKE 'INSERT%[[<space><tab>'+char(13)+char(10)+']Emp[<space><tab>'+char(13)+char(10)+']%'

它正常工作。

我如何找到解决方法?

这更像是如何检查]内的],例如[]。 所以这应该是[abc]]

0 个答案:

没有答案