MS_SQL2000,用脚本BACKUP DATABASE备份数据库,可是遇到个问题,如果事先无法知道数据库的名字怎么办?
MS_SQL2000,用脚本BACKUP DATABASE备份数据库,可是遇到个问题,如果事先无法知道数据库的名字怎么办?
MS_SQL2000,用脚本BACKUP DATABASE自动备份数据库,可是遇到个问题,如果事先无法知道数据库的名字怎么办?有这样一个购买的财务软件,不知道怎么设计的,可以让用户自己起数据库的名字,然后在服务器上生成这个数据库。这样,我们技术人员就不知道财务人员起的什么名字了(不定期在变)。那么怎么备份呢?软件有自己的数据备份,我们要额外的给作个对数据库的自动备份。
有没有办法,不指明数据库的名字,全部备份所有的数据库呢?这样算达到要求。
------解决方案--------------------罗列所有数据库的名称
select name from master..sysdatabases where dbid> 5
------解决方案--------------------select name from master..sysdatabases where dbid> 5
---把这些都写进计划任务的脚本里面
------解决方案----------------------2.进行数据库备份
declare @dbname varchar(256)
declare @sql varchar(8000)
declare cur cursor local for
select name from master..sysdatabases where dbid> 4
open cur
fetch next from cur into @dbname
while @@fetch_status=0
begin
set @sql= 'backup database '+@dbname
+ ' to disk= ' 'z:\ '+@dbname
+ '.bak ' ' '
exec(@sql)
fetch next from cur into @dbname
end
close cur
deallocate cur
------解决方案--------------------select db_name() 获取数据库名称~~~~~~~~~~
--或者
DECLARE @dbName varchar(100)
set @dbName =DB_NAME()
print @dbName
例如我在mystudy数据库下执行此语句,返回:
mystudy
------解决方案--------------------master..sysdatabases: 完整写法是master.dbo.sysdatabases(因为dbo是默认用户,也可省略)
建议:备份dbid> 6以外的用户库外,还要备份master与msdb