SQL Server 2005 命令行 [还原] 数据库备份(没有客户端)

时间:2022-09-20 08:04:53
我想在客户的机器上安装完sql server 2005 以后
执行一个脚本,把我准备好的数据库恢复上去,请问怎么做?

另外如果这个方法不好,有没有别的方法,比如导出sql再导入sql,这个怎么做,在没有sql server 客户端的时候怎么做这些?

sql server 2005 默认安装以后是否需要像vs2005中带的开发版那样做一些配置才能远程访问的?如果要做这些配置在没有客户端的情况下怎么做?能不能做成脚本?

因为我对sqlserver 2005 不熟悉,特向大家请教,非常感谢!

6 个解决方案

#1


还有现在数据库为什么还带个sqlexpress?原来2000的我怎么记得没有

#2


/*
openDatasource:不使用连接服务器的名称,而提供特殊的链接信息.
使用 openDatasource的前提是仅当 DisallowAdhocAccess
注册表选项针对指定的提供程序显式设置为 0,
并且启用 Ad Hoc Distributed Queries 高级配置选项时,
OPENDATASOURCE 才可用于访问 OLE DB 数据源中的远程数据。
如果未设置这些选项,则默认行为不允许即席访问。
*/
--代码如下:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--(1)例如现在我想打开D盘中BJData.mdb中的BJAdmin表的信息
select ID,Title,OwnerName from
opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\BJData.mdb";')...BJAdmin
/*Results:
ID          Title                OwnerName
----------- -------------------- --------------------------------------------------
1           xinrong             
4           webmaster            admin
5           bing                 webmaster
(3 行受影响)
*/
--(2)我现在要将BJAdmin中BJNewsCategory中的信息插入到A表中
--先查询下Test.Newscategory
select * from  Test.dbo.Newscategory
/*
ID          Title
----------- --------------------
1           MSSQL
(1 行受影响)
*/
insert into Newscategory select Title from OpenDataSource
('Microsoft.Jet.OLEDB.4.0','Data Source="D:\BJData.mdb";')...BJNewsCategory
--导入之后再查询
select * from  Test.dbo.Newscategory
/*
ID          Title
----------- --------------------
1           MSSQL
2           新闻分类
3           新闻动态
4           工程案例
5           膜结构知识
6           在建工程
(6 行受影响)
*/
--上面的都是在MSSQL中查询 Access中的信息,现在将MSSQL中的信息导入到Access中去
--(3)将 AdminInfo的信息插入到BJData.mdb中的BJAdmin中去
select * from Test.dbo.AdminInfo
/*
ID          Title
----------- ------------------------------
1           ws_hgo
(1 行受影响)
*/
insert into opendatasource('microsoft.Jet.OLEDB.4.0','Data source="D:/BJData.mdb"')...BJAdmin
(Title,RoleID) select Title,1 from AdminInfo
--然后查询BJAdmin表的信息
select ID,Title,OwnerName from
opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\BJData.mdb";')...BJAdmin
/*
ID          Title                OwnerName
----------- -------------------- --------------------------------------------------
1           xinrong             
4           webmaster            admin
5           bing                 webmaster
12          ws_hgo               NULL
(4 行受影响)
*/
--(4)上面说的是Access与 MSSQl之间的操作现在操作下
--Excel与MSSQL之间的操作
--从Excel中读取信息
select * from OpenDataSource
('Microsoft.Jet.OLEDB.4.0','Data Source="D:\work.et";Extended properties=Excel 5.0')...[sheet1$]
/*
EmployeeName        Sex            Age             Post
-----------       -----------    --------      ------------
ws_hgo             Boy            23             Senior Programmer
yangzhognyuan      Boy            24             Programmer
chenjing           Girl           24             Designer
(3 行受影响)

--(5)
*/
/*将本地表中的信息导入到远程数据库表中
下面的例子将本地 whsxjAdmin种的(Title,Password)插入到远程
zhongyiAdmin中去
*/
insert into opendatasource('SQLOLEDB','Data Source=IP地址;User ID=zhongyi;password=xinrongkeji').sqlzhongyi.dbo.zhongyiAdmin(Title,Password)
select Title,Password from whsxjAdmin
--下面说下OPENROWSET
/*
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。
当访问链接服务器中的表时,这种方法是一种替代方法,
并且是一种使用 OLE DB 连接并访问远程数据的一次性的临时方法。
*/
--(1)直接查询远程服务器上面的信息
select ID,Title from OpenRowset
('SQLOLEDB','IP地址';'zhongyi';'xinrongkeji','select * from sqlzhongyi.dbo.zhongyiAdmin') t
--(2)查询Access里面的信息
select * from OpenRowset
('microsoft.Jet.OLEDB.4.0','d:\BJData.mdb';'Admin';'',BJAdmin) as g

#3


弄错啦!!!

#4


没有客户端吗?
你的文件时什么格式的啊

#5


sqlserver有关的命令行就那几个命令 bcp,isql(不知道2005有吗) osql
2005还多了个sqlcmd
给你参考一下,xys_777的
用sqlserver的sqlcmd、osql、isql的备份与还原


--sqlcmd ,sql2005新加工具
1、备份
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 2 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 2 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 1.207 秒(1.201 MB/秒)。


2、还原
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:\aa\aaa.bak'"

3、帮助
C:\Documents and Settings\xuysh>"C:\Program Files\Microsoft SQL Server\90\Tools\
Binn\SQLCMD.EXE" -?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

用法: Sqlcmd            [-U 登录 ID]          [-P 密码]
  [-S 服务器]            [-H 主机名]          [-E 可信连接]
  [-d 使用数据库名称] [-l 登录超时值]     [-t 查询超时值]
  [-h 标题]           [-s 列分隔符]      [-w 屏幕宽度]
  [-a 数据包大小]        [-e 回显输入]        [-I 允许带引号的标识符]
  [-c 命令结束]            [-L[c] 列出服务器[清除输出]]
  [-q "命令行查询"]   [-Q "命令行查询" 并退出]
  [-m 错误级别]        [-V 严重级别]     [-W 删除尾随空格]
  [-u unicode 输出]    [-r[0|1] 发送到 stderr 的消息]
  [-i 输入文件]         [-o 输出文件]        [-z 新密码]
  [-f <代码页> | i:<代码页>[,o:<代码页>]] [-Z 新建密码并退出]
  [-k[1|2] 删除[替换]控制字符]
  [-y 可变长度类型显示宽度]
  [-Y 固定长度类型显示宽度]
  [-p[1] 打印统计信息[冒号格式]]
  [-R 使用客户端区域设置]
  [-b 出错时中止批处理]
  [-v 变量 = "值"...]  [-A 专用管理连接]
  [-X[1] 禁用命令、启动脚本、环境变量[并退出]]
  [-x 禁用变量情况]
  [-? 显示语法摘要]

--Osql sql2000和sql2005都有
--1、备份
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\Osql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 3 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 3 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 0.531 秒(2.730 MB/秒)。


2、还原
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\Osql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 1 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 178 页,花费 0.200 秒(7.255 MB/秒)。


3、帮助
C:\Documents and Settings\xuysh>"C:\Program Files\Microsoft SQL Server\90\Tools\
Binn\Osql.EXE" /?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

注意: osql 并不支持 SQL Server 2005的所有功能。
请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。

用法: osql                   [-U 登录 ID]          [-P 密码]
  [-S 服务器]                [-H 主机名]           [-E 可信连接]
  [-d 使用数据库名称]        [-l 登录超时值]       [-t 查询超时值]
  [-h 标题]                  [-s 列分隔符]         [-w 列宽]
  [-a 数据包大小]            [-e 回显输入]         [-I 允许带引号的标识符]
  [-L 列出服务器]            [-c 命令结束]         [-D ODBC DSN 名称]
  [-q "命令行查询"]          [-Q "命令行查询" 并退出]
  [-n 删除编号方式]          [-m 错误级别]
  [-r 发送到 stderr 的消息]  [-V 严重级别]
  [-i 输入文件]              [-o 输出文件]
  [-p 打印统计信息]               [-b 出错时中止批处理]
  [-X[1] 禁用命令,[退出的同时显示警告]]
  [-O 使用旧 ISQL 行为禁用下列项]
      <EOF> 批处理
      自动调整控制台宽度
      宽消息
      默认错误级别为 -1 和 1
  [-? 显示语法摘要]


--Isql ,sql2000工具,2005中没有
--1、备份
"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\Isql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 3 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 3 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 0.531 秒(2.730 MB/秒)。


2、还原
"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\Isql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 1 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 178 页,花费 0.200 秒(7.255 MB/秒)。

3、帮助
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\xuysh>"C:\Program Files\Microsoft SQL Server\80\Tools\
Binn\Isql.EXE"/?
isql: unknown option ?
usage: isql              [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w columnwidth]
  [-a packetsize]        [-e echo input]        [-x max text size]
  [-L list servers]      [-c cmdend]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-n remove numbering]  [-m errorlevel]
  [-r msgs to stderr]
  [-i inputfile]         [-o outputfile]
  [-p print statistics]  [-b On error batch abort]
  [-O use Old ISQL behavior disables the following]
      <EOF> batch processing
      Auto console width scaling
      Wide messages
      default errorlevel is -1 vs 1
  [-? show syntax summary (this screen)]

#6


靠这么强大...

#1


还有现在数据库为什么还带个sqlexpress?原来2000的我怎么记得没有

#2


/*
openDatasource:不使用连接服务器的名称,而提供特殊的链接信息.
使用 openDatasource的前提是仅当 DisallowAdhocAccess
注册表选项针对指定的提供程序显式设置为 0,
并且启用 Ad Hoc Distributed Queries 高级配置选项时,
OPENDATASOURCE 才可用于访问 OLE DB 数据源中的远程数据。
如果未设置这些选项,则默认行为不允许即席访问。
*/
--代码如下:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--(1)例如现在我想打开D盘中BJData.mdb中的BJAdmin表的信息
select ID,Title,OwnerName from
opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\BJData.mdb";')...BJAdmin
/*Results:
ID          Title                OwnerName
----------- -------------------- --------------------------------------------------
1           xinrong             
4           webmaster            admin
5           bing                 webmaster
(3 行受影响)
*/
--(2)我现在要将BJAdmin中BJNewsCategory中的信息插入到A表中
--先查询下Test.Newscategory
select * from  Test.dbo.Newscategory
/*
ID          Title
----------- --------------------
1           MSSQL
(1 行受影响)
*/
insert into Newscategory select Title from OpenDataSource
('Microsoft.Jet.OLEDB.4.0','Data Source="D:\BJData.mdb";')...BJNewsCategory
--导入之后再查询
select * from  Test.dbo.Newscategory
/*
ID          Title
----------- --------------------
1           MSSQL
2           新闻分类
3           新闻动态
4           工程案例
5           膜结构知识
6           在建工程
(6 行受影响)
*/
--上面的都是在MSSQL中查询 Access中的信息,现在将MSSQL中的信息导入到Access中去
--(3)将 AdminInfo的信息插入到BJData.mdb中的BJAdmin中去
select * from Test.dbo.AdminInfo
/*
ID          Title
----------- ------------------------------
1           ws_hgo
(1 行受影响)
*/
insert into opendatasource('microsoft.Jet.OLEDB.4.0','Data source="D:/BJData.mdb"')...BJAdmin
(Title,RoleID) select Title,1 from AdminInfo
--然后查询BJAdmin表的信息
select ID,Title,OwnerName from
opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\BJData.mdb";')...BJAdmin
/*
ID          Title                OwnerName
----------- -------------------- --------------------------------------------------
1           xinrong             
4           webmaster            admin
5           bing                 webmaster
12          ws_hgo               NULL
(4 行受影响)
*/
--(4)上面说的是Access与 MSSQl之间的操作现在操作下
--Excel与MSSQL之间的操作
--从Excel中读取信息
select * from OpenDataSource
('Microsoft.Jet.OLEDB.4.0','Data Source="D:\work.et";Extended properties=Excel 5.0')...[sheet1$]
/*
EmployeeName        Sex            Age             Post
-----------       -----------    --------      ------------
ws_hgo             Boy            23             Senior Programmer
yangzhognyuan      Boy            24             Programmer
chenjing           Girl           24             Designer
(3 行受影响)

--(5)
*/
/*将本地表中的信息导入到远程数据库表中
下面的例子将本地 whsxjAdmin种的(Title,Password)插入到远程
zhongyiAdmin中去
*/
insert into opendatasource('SQLOLEDB','Data Source=IP地址;User ID=zhongyi;password=xinrongkeji').sqlzhongyi.dbo.zhongyiAdmin(Title,Password)
select Title,Password from whsxjAdmin
--下面说下OPENROWSET
/*
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。
当访问链接服务器中的表时,这种方法是一种替代方法,
并且是一种使用 OLE DB 连接并访问远程数据的一次性的临时方法。
*/
--(1)直接查询远程服务器上面的信息
select ID,Title from OpenRowset
('SQLOLEDB','IP地址';'zhongyi';'xinrongkeji','select * from sqlzhongyi.dbo.zhongyiAdmin') t
--(2)查询Access里面的信息
select * from OpenRowset
('microsoft.Jet.OLEDB.4.0','d:\BJData.mdb';'Admin';'',BJAdmin) as g

#3


弄错啦!!!

#4


没有客户端吗?
你的文件时什么格式的啊

#5


sqlserver有关的命令行就那几个命令 bcp,isql(不知道2005有吗) osql
2005还多了个sqlcmd
给你参考一下,xys_777的
用sqlserver的sqlcmd、osql、isql的备份与还原


--sqlcmd ,sql2005新加工具
1、备份
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 2 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 2 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 1.207 秒(1.201 MB/秒)。


2、还原
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:\aa\aaa.bak'"

3、帮助
C:\Documents and Settings\xuysh>"C:\Program Files\Microsoft SQL Server\90\Tools\
Binn\SQLCMD.EXE" -?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

用法: Sqlcmd            [-U 登录 ID]          [-P 密码]
  [-S 服务器]            [-H 主机名]          [-E 可信连接]
  [-d 使用数据库名称] [-l 登录超时值]     [-t 查询超时值]
  [-h 标题]           [-s 列分隔符]      [-w 屏幕宽度]
  [-a 数据包大小]        [-e 回显输入]        [-I 允许带引号的标识符]
  [-c 命令结束]            [-L[c] 列出服务器[清除输出]]
  [-q "命令行查询"]   [-Q "命令行查询" 并退出]
  [-m 错误级别]        [-V 严重级别]     [-W 删除尾随空格]
  [-u unicode 输出]    [-r[0|1] 发送到 stderr 的消息]
  [-i 输入文件]         [-o 输出文件]        [-z 新密码]
  [-f <代码页> | i:<代码页>[,o:<代码页>]] [-Z 新建密码并退出]
  [-k[1|2] 删除[替换]控制字符]
  [-y 可变长度类型显示宽度]
  [-Y 固定长度类型显示宽度]
  [-p[1] 打印统计信息[冒号格式]]
  [-R 使用客户端区域设置]
  [-b 出错时中止批处理]
  [-v 变量 = "值"...]  [-A 专用管理连接]
  [-X[1] 禁用命令、启动脚本、环境变量[并退出]]
  [-x 禁用变量情况]
  [-? 显示语法摘要]

--Osql sql2000和sql2005都有
--1、备份
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\Osql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 3 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 3 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 0.531 秒(2.730 MB/秒)。


2、还原
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\Osql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 1 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 178 页,花费 0.200 秒(7.255 MB/秒)。


3、帮助
C:\Documents and Settings\xuysh>"C:\Program Files\Microsoft SQL Server\90\Tools\
Binn\Osql.EXE" /?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

注意: osql 并不支持 SQL Server 2005的所有功能。
请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。

用法: osql                   [-U 登录 ID]          [-P 密码]
  [-S 服务器]                [-H 主机名]           [-E 可信连接]
  [-d 使用数据库名称]        [-l 登录超时值]       [-t 查询超时值]
  [-h 标题]                  [-s 列分隔符]         [-w 列宽]
  [-a 数据包大小]            [-e 回显输入]         [-I 允许带引号的标识符]
  [-L 列出服务器]            [-c 命令结束]         [-D ODBC DSN 名称]
  [-q "命令行查询"]          [-Q "命令行查询" 并退出]
  [-n 删除编号方式]          [-m 错误级别]
  [-r 发送到 stderr 的消息]  [-V 严重级别]
  [-i 输入文件]              [-o 输出文件]
  [-p 打印统计信息]               [-b 出错时中止批处理]
  [-X[1] 禁用命令,[退出的同时显示警告]]
  [-O 使用旧 ISQL 行为禁用下列项]
      <EOF> 批处理
      自动调整控制台宽度
      宽消息
      默认错误级别为 -1 和 1
  [-? 显示语法摘要]


--Isql ,sql2000工具,2005中没有
--1、备份
"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\Isql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 3 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 3 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 0.531 秒(2.730 MB/秒)。


2、还原
"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\Isql.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:\aa\aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 1 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 178 页,花费 0.200 秒(7.255 MB/秒)。

3、帮助
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\xuysh>"C:\Program Files\Microsoft SQL Server\80\Tools\
Binn\Isql.EXE"/?
isql: unknown option ?
usage: isql              [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w columnwidth]
  [-a packetsize]        [-e echo input]        [-x max text size]
  [-L list servers]      [-c cmdend]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-n remove numbering]  [-m errorlevel]
  [-r msgs to stderr]
  [-i inputfile]         [-o outputfile]
  [-p print statistics]  [-b On error batch abort]
  [-O use Old ISQL behavior disables the following]
      <EOF> batch processing
      Auto console width scaling
      Wide messages
      default errorlevel is -1 vs 1
  [-? show syntax summary (this screen)]

#6


靠这么强大...