急~急~急!!!sql数据库还原完成后,提示数据库正在装载!在线等~~~

时间:2021-11-14 19:19:29
我做的VB程序,其中有个功能是还原数据库,语句如下:
1)restore database Library from disk='" & BackUpFileName & "' with recovery,replace
2)restore database Library from disk='" & BackUpFileName & "' with replace
3)restore database Library from disk='" & BackUpFileName & "' WITH NORECOVERY
变量:BackUpFileName存储文件路径
我在VB中这样写的:
...
sSql = "restore database Library from disk='" & BackUpFileName & "' with recovery,replace"
zyCn.Execute sSql
还原完毕后,数据库的那个图标显示灰色,然后在后面提示(正在装载),但是我把上述语句复制到查询分析器中执行,就一点错误也没有,还原完毕后数据库能够正常使用。这是为什么啊?各位大哥帮帮我啊,在线等~~~~

9 个解决方案

#1


这些东西最好写入存储过程 然后再存储过程里面完成

你的数据正在装载我没有遇到过 我倒是遇到过质疑的

#2


大哥,我做的程序是,软件还没有安装数据库的时候,通过我这个小程序执行导入数据库的操作那么请问 在没有数据库的情况下,怎么写到存储过程中去???

#3


哪你要把数据库还原到哪里啊?
附加一个库吧 !
真晕

#4


呵呵 没表达清楚 我说的没装数据库不是说没装SQLServer数据库平台 而是说:比如我做的程序用到的数据库的名字叫:Library 在客户没装我们的软件的时候肯定在他的SQLServer数据库中不可能有我们的数据库Library 所以我就想做个程序 在他安装完我们的软件的时候,通过这个程序先把 Library 数据库还原进去,现在明白了吗?mustudent(小生)
说白了 我想做个安装程序 在安装的过程中自动把数据库导入进去 但是我不会做 就想了这样一个办法

#5


糾正一點 你的那種方法部叫做還原 你現在要做的是附加操作 還原是把Bak文件還原到一存在的數據庫中,你的數據庫還沒有建立所以不能用還原 只能用附加數據庫的方法(人工),自動完成得我也不會 不過我知道了你的意思 就是自動建庫
Demo1:
1 建数据库
dim objServer as new sqldmo.sqlserver (如果无法引用,记得引用上面模组)
dim objDatabase as new sqldmo.database
dim objDBfile as sqldmo.dbfile
dim objTlog as sqldmo.logfile

objserver.connect "localhost","sa","password"

objdatabase.name = "dbName"

objdbfile.name = "dbNameData"
objdbfile.physicalname="c:\data\dbName.mdf"

objdatabase.filegroups("primary").dbfiles.add objdbfile

objtlog.name="DbNameLog"
objlog.physicalname="c:\data\dbName.ldf"

objdatabase.transactionlog.logfiles.add objlog

objserver.databases.add objdatabase
objserver.disconnect

2.用SQL创建表、视图、SP等以及插入适当数据 (要引用ADO)
dim cn as new adodb.connection
cn.execute "create table(......)"
cn.execute sql....
....
 acev(睡眠不足( PowerIDC.Net )) 的 至于能不能实现 不知道

#6


Dome2:
用SQL生成脚本,带数据库和用户生成脚本,然后程序逐条执行:例子:

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'book')
DROP DATABASE [book]
GO

CREATE DATABASE [book]  ON (NAME = N'book_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\book_Data.MDF' , SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'book_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\book_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)
 COLLATE Chinese_PRC_CI_AS
GO

exec sp_dboption N'book', N'autoclose', N'true'
GO

exec sp_dboption N'book', N'bulkcopy', N'false'
GO

exec sp_dboption N'book', N'trunc. log', N'true'
GO

exec sp_dboption N'book', N'torn page detection', N'true'
GO

exec sp_dboption N'book', N'read only', N'false'
GO

exec sp_dboption N'book', N'dbo use', N'false'
GO

exec sp_dboption N'book', N'single', N'false'
GO

exec sp_dboption N'book', N'autoshrink', N'true'
GO

exec sp_dboption N'book', N'ANSI null default', N'false'
GO

exec sp_dboption N'book', N'recursive triggers', N'false'
GO

exec sp_dboption N'book', N'ANSI nulls', N'false'
GO

exec sp_dboption N'book', N'concat null yields null', N'false'
GO

exec sp_dboption N'book', N'cursor close on commit', N'false'
GO

exec sp_dboption N'book', N'default to local cursor', N'false'
GO

exec sp_dboption N'book', N'quoted identifier', N'false'
GO

exec sp_dboption N'book', N'ANSI warnings', N'false'
GO

exec sp_dboption N'book', N'auto create statistics', N'true'
GO

exec sp_dboption N'book', N'auto update statistics', N'true'
GO

use [book]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bookj]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[bookj]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[books]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[books]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bookz]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[bookz]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[class]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[class]
GO

CREATE TABLE [dbo].[bookj] (
[jid] [int] NULL ,
[jtitle] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[bookid] [int] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[books] (
[bookid] [int] NULL ,
[btitle] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[classid] [int] NULL ,
[hits] [int] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[bookz] (
[zid] [int] NULL ,
[ztitle] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[bookid] [int] NULL ,
[jid] [int] NULL ,
[updates] [datetime] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[class] (
[classid] [int] NULL ,
[classname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

(阿龍的)

#7


还不如手动来的快

#8


装个程序..附加个数据库就那么一回.何必这么麻烦.
...呵呵我这个人挺懒_ _

#9


贊同樓上的
不過要是用友什麽的還是這樣的好

#1


这些东西最好写入存储过程 然后再存储过程里面完成

你的数据正在装载我没有遇到过 我倒是遇到过质疑的

#2


大哥,我做的程序是,软件还没有安装数据库的时候,通过我这个小程序执行导入数据库的操作那么请问 在没有数据库的情况下,怎么写到存储过程中去???

#3


哪你要把数据库还原到哪里啊?
附加一个库吧 !
真晕

#4


呵呵 没表达清楚 我说的没装数据库不是说没装SQLServer数据库平台 而是说:比如我做的程序用到的数据库的名字叫:Library 在客户没装我们的软件的时候肯定在他的SQLServer数据库中不可能有我们的数据库Library 所以我就想做个程序 在他安装完我们的软件的时候,通过这个程序先把 Library 数据库还原进去,现在明白了吗?mustudent(小生)
说白了 我想做个安装程序 在安装的过程中自动把数据库导入进去 但是我不会做 就想了这样一个办法

#5


糾正一點 你的那種方法部叫做還原 你現在要做的是附加操作 還原是把Bak文件還原到一存在的數據庫中,你的數據庫還沒有建立所以不能用還原 只能用附加數據庫的方法(人工),自動完成得我也不會 不過我知道了你的意思 就是自動建庫
Demo1:
1 建数据库
dim objServer as new sqldmo.sqlserver (如果无法引用,记得引用上面模组)
dim objDatabase as new sqldmo.database
dim objDBfile as sqldmo.dbfile
dim objTlog as sqldmo.logfile

objserver.connect "localhost","sa","password"

objdatabase.name = "dbName"

objdbfile.name = "dbNameData"
objdbfile.physicalname="c:\data\dbName.mdf"

objdatabase.filegroups("primary").dbfiles.add objdbfile

objtlog.name="DbNameLog"
objlog.physicalname="c:\data\dbName.ldf"

objdatabase.transactionlog.logfiles.add objlog

objserver.databases.add objdatabase
objserver.disconnect

2.用SQL创建表、视图、SP等以及插入适当数据 (要引用ADO)
dim cn as new adodb.connection
cn.execute "create table(......)"
cn.execute sql....
....
 acev(睡眠不足( PowerIDC.Net )) 的 至于能不能实现 不知道

#6


Dome2:
用SQL生成脚本,带数据库和用户生成脚本,然后程序逐条执行:例子:

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'book')
DROP DATABASE [book]
GO

CREATE DATABASE [book]  ON (NAME = N'book_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\book_Data.MDF' , SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'book_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\book_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)
 COLLATE Chinese_PRC_CI_AS
GO

exec sp_dboption N'book', N'autoclose', N'true'
GO

exec sp_dboption N'book', N'bulkcopy', N'false'
GO

exec sp_dboption N'book', N'trunc. log', N'true'
GO

exec sp_dboption N'book', N'torn page detection', N'true'
GO

exec sp_dboption N'book', N'read only', N'false'
GO

exec sp_dboption N'book', N'dbo use', N'false'
GO

exec sp_dboption N'book', N'single', N'false'
GO

exec sp_dboption N'book', N'autoshrink', N'true'
GO

exec sp_dboption N'book', N'ANSI null default', N'false'
GO

exec sp_dboption N'book', N'recursive triggers', N'false'
GO

exec sp_dboption N'book', N'ANSI nulls', N'false'
GO

exec sp_dboption N'book', N'concat null yields null', N'false'
GO

exec sp_dboption N'book', N'cursor close on commit', N'false'
GO

exec sp_dboption N'book', N'default to local cursor', N'false'
GO

exec sp_dboption N'book', N'quoted identifier', N'false'
GO

exec sp_dboption N'book', N'ANSI warnings', N'false'
GO

exec sp_dboption N'book', N'auto create statistics', N'true'
GO

exec sp_dboption N'book', N'auto update statistics', N'true'
GO

use [book]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bookj]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[bookj]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[books]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[books]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bookz]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[bookz]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[class]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[class]
GO

CREATE TABLE [dbo].[bookj] (
[jid] [int] NULL ,
[jtitle] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[bookid] [int] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[books] (
[bookid] [int] NULL ,
[btitle] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[classid] [int] NULL ,
[hits] [int] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[bookz] (
[zid] [int] NULL ,
[ztitle] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[bookid] [int] NULL ,
[jid] [int] NULL ,
[updates] [datetime] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[class] (
[classid] [int] NULL ,
[classname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

(阿龍的)

#7


还不如手动来的快

#8


装个程序..附加个数据库就那么一回.何必这么麻烦.
...呵呵我这个人挺懒_ _

#9


贊同樓上的
不過要是用友什麽的還是這樣的好