home *** CD-ROM | disk | FTP | other *** search
/ 95.86.62.111 / 95.86.62.111.tar / 95.86.62.111 / sql2000 / INSTALL / dbverify.sql < prev    next >
Text File  |  2000-07-04  |  2KB  |  58 lines

  1. /*
  2. ** Copyright Microsoft, Inc. 1994 - 2000
  3. ** All Rights Reserved.
  4. */
  5.  
  6. declare @name as sysname
  7.  
  8. select @name=name from master.dbo.sysdatabases where
  9. (DATABASEPROPERTY(name, N'IsDetached')=1) or
  10. (DATABASEPROPERTY(name, N'IsShutdown')=1) or
  11. (DATABASEPROPERTY(name, N'IsSuspect')=1) or
  12. (DATABASEPROPERTY(name, N'IsOffline')=1) or
  13. (DATABASEPROPERTY(name, N'IsInLoad')=1) or 
  14. (DATABASEPROPERTY(name, N'IsInRecovery')=1) or
  15. (DATABASEPROPERTY(name, N'IsEmergencyMode')=1) or
  16. (DATABASEPROPERTY(name, N'IsInStandBy')=1) or
  17. (DATABASEPROPERTY(name, N'IsReadOnly')=1) 
  18. if (@name <> '' And (@name is not null))
  19. begin
  20.     RAISERROR('Database ''%s'' must be made writable before it can be upgraded.',16,1,@name)
  21.     GOTO ENDIT
  22. end
  23. select @name=name from master.dbo.sysdatabases where
  24. (has_dbaccess(name)=0)
  25. if (@name <> '' And (@name is not null))
  26. begin
  27.     RAISERROR(15622,16,1,@name)
  28.     GOTO ENDIT
  29. end
  30.  
  31. declare @groupname as sysname
  32. declare @SQL  nvarchar(512)
  33. set nocount on
  34. declare c1 cursor forward_only read_only for 
  35.         select name from master.dbo.sysdatabases
  36.     open c1
  37.     fetch c1 into @name
  38.  
  39.     while @@fetch_status >= 0
  40.     begin
  41.         /*look for read-only filegroups for each database */
  42.         select @SQL = 'use ' + QuoteName(@name) + ' select groupname from '+  QuoteName(@name) + '.dbo.sysfilegroups where (FILEGROUPPROPERTY(groupname, N''IsReadOnly'')=1)'
  43.         execute(@SQL)
  44.         if (@@ROWCOUNT > 0)
  45.             GOTO FAILURE
  46.         fetch c1 into @name
  47.     end
  48.     close c1
  49.     deallocate c1
  50.     GOTO ENDIT
  51. FAILURE:
  52.     RAISERROR('Database ''%s'' has a read only filegroup.',16,1,@name)
  53.     close c1
  54.     deallocate c1
  55. ENDIT:
  56.  
  57.  
  58.