Server=(local);Integrated   Security=SSPI;database=Pubs
server=(local)\NetSDK;database=pubs;Integrated   Security=SSPI
Data   Source=localhost;Integrated   Security=SSPI;Initial   Catalog=Northwind
data   source=(local);initial   catalog=xr;integrated   security=SSPI
Persist   Security   Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer
uid=sa;pwd=passwords;initial   catalog=pubs;data   source=127.0.0.1;Connect   Timeout=900
------------
我在网上找到的几种写法
我看了数据库名都是在database=?? catalog=??
然后我可用正则
(?i)database=([^\s;\r\n]+)|catalog=([^\s;\r\n]+)
来取出这个数据库名
但我不知道是不是全部的连接语句都是这样写的不能保证我这个正则就一定可以识别出所连接的数据库名!
那么还有没有其他的写法呢?
还是我上面的正则就一定可以识别出连接语句所要连接的数据库名?谢谢

解决方案 »

  1.   

    LZ何必这么写呢!
    你那个账号只要对其它数据库有权限就可以访问,sa当然有了。
    不必有正规表达式。
    一种是所有表名,视图,存储过程都加上[数据库名].dbo.[表名],[数据库名].dbo.[视图],等
    2:在每条的SQL语句前,都加个 use 数据库;--即转到此数据库。
      

  2.   

    只针对MSSQLServer的吗?Oracle、Sybase或者其他数据库的要不要判断?
      

  3.   

    现在只针对
    只针对MSSQLServer谢谢