MCSE技术论坛

首页 » 开发者俱乐部 » C# » SQL server 2000与SQL Server 2005的一些想法
passedbylove - 2008-5-16 19:38:00
不知道你有没有这个苦恼:在SQL Server 2000上写出的批处理明明可以运行,在 SQL Server 2005上却不可以运行.

看看下面的代码吧,你可能有一些想法吧.
Blog http://hi.baidu.com/passedbylove
--------------------------------------------------------------------------------------------------------------------
--系统数据库表
declare @Systemdatabase varchar(13)
--系统表
declare @SystemTable varchar(13)


use master
if charindex('2005',@@version)=22
begin
  print '你的数据库是SQL Server 2005的'
  if charindex('2000',@@version)=0
  begin
   
    set @Systemdatabase='sys.databases'
   
    set @SystemTable='sys.objects'
    print '非SQL Server 2000'
    if not exists(select name from sys.databases where name='demo')
      create database demo
    else
      print '数据库文件demo已经存在' 
  end
end
else
begin
  if(charindex('2000',@@version))=23
  begin
  set @Systemdatabase='sysdatabases'
  set @SystemTable='sysobjects'
  print '你的数据库是SQL Server 2000的'
  if not exists(select name from sysobjects where name='demo')
      create database demo
    else
      print '数据库文件demo已经存在'
  end
end
print '当前数据库,存储数据库名的表为
+@Systemdatabase
print '当前数据库,存储用户名的表为'+@SystemTable


代码2
---------------------------------------------------------------------------------------------

/*==============================================
  版本标识符

经测试
SQLServer 2005 返回字符串2005索引值为22
        SQLServer 2005 返回字符串2005索引值为23
================================================*/
declare @versionIdentifier varchar(4)

set @versionIdentifier=
case charindex('2000',@@version)
  when 22 then  '2005'
  When 23 then  '2000'
  end

print '你的数据库是 SQL Server '+@versionIdentifier


1
查看完整版本: SQL server 2000与SQL Server 2005的一些想法