如何看数据库服务器类型

目前最常见的服务器是ACCESS与SQL SERVER,它们都支持T-SQL标准,但还是有诸多不同的。

1、三个关键系统表

Sysdatabases系统表:Microsoft SQL Server为每个数据库表中的一行。第一次安装SQL Server,sysdatabases主人,模型,MSDB mssqlweb和tempdb数据库条目。桌子上只存储在主数据库中。这个表存储在主数据库中,表存储在哪些信息?这是非常重要的。他是来拯救所有的图书馆,以及库ID和一些相关信息。

我把这里对我们有用字段名称和相关指令为您列出。名称/ /说图书馆的名称。

Dbid / /说库ID,Dbid从1到5是系统。分别是:主人,模型、MSDB tempdb五mssqlweb,这些库。使用select *的主人。dbo。所有sysdatabases可以查询图书馆的名字。

Sysobjects:SQL -在每个数据库服务器中,有系统的桌子,它是存储在数据库中创建的所有对象,如约束、规则、默认值,日志,存储过程等,每个对象在表中的一行。

Syscolumns:每个表和视图的列在表中的一行,每个参数的存储过程将表中的一行。位于每个数据库表。主要字段:

名称、id colid:字段名称、身份证号码、字段id,id只是我们桌子上sysobjects id号。

使用:从ChouYFD选择*。Dbo。Syscolumns id = 123456789 ChouYFD这个库,id的列表是123456789表中的所有字段。

2、利用系统表

ACCESS的系统表是msysobjects,且在WEB环境下没有访问权限,而SQL SERVER的系统表是sysobjects,在WEB环境下有访问权限。对于以下两条语句:

(1)HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from msysobjects)>0

(2)HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from sysobjects)>0

若数据库是ACCESS以上两条都会异常。若数据库是SQL SERVE,则第二条abc.asp一定运行正常,第一条则异常。

3、 按照数据库服务器的系统变量进行区分

SQL SERVER有user,db_name()等系统变量,利用这些系统值不仅可以判断SQL SERVER,而且还可以得到大量有用信息。

如:

(1)HTTP://xxx.xxx.xxx/abc.asp?p=YY&n … db_name()>0 不仅可以判断是否是SQL SERVER,还可以得到当前正在使用的数据库名;

(2)HTTP://xxx.xxx.xxx/abc.asp?p=YY and user>0 不仅可以判断是否是SQL SERVER,还可以得到当前连接到数据库的用户名。

利用上面三种方法,相信你就能准确的分辨出数据库服务器的类型,你学会了吗。


标签:  | 


顶部