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 )) 的 至于能不能实现 不知道
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
(阿龍的)
用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 )) 的 至于能不能实现 不知道
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
(阿龍的)
用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
贊同樓上的
不過要是用友什麽的還是這樣的好
不過要是用友什麽的還是這樣的好