如何将数据库sql server2008中的数据库生成脚本输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数据库sql server2008中的数据库生成脚本输出相关的知识,希望对你有一定的参考价值。
参考技术A Qzone微信
SQL Server用SQL指令导入文件
华彩缤纷 2016-12-16 09:14
通常情况下,SQL Server要导入Excel文件,我们都是用SQL Server提供的导入工具。但其实SQL Server有更简单的方法:
1)接受数据导入的表已经存在。
insert into t1 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,
'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$);
2)导入数据并生成表。
select * into t1 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$);
3) 导入Excel中指定的列到数据库表中指定的列。
INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET 'MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0; HDR=YES; DATABASE=c:\test.xls',sheet1$);
需要注意:
从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。 参考技术B
SQL Server 2008生成数据库脚本步骤:
1、打开Microsoft SQL Server Management Studio,登录数据库服务器,在想要生成脚本的数据库名称上单击鼠标右键,选择右键菜单项【任务】——【生成脚本】,然后在【脚本向导】窗口按照提示点击【下一步】;
2、在【脚本向导】窗口的【选择数据库】步骤中,勾选左下角的【为所选数据库中的所有对象编写脚本】,然后点击【下一步】按钮;
3、在【脚本向导】窗口的【选择脚本选项】步骤中,在【为服务器版本编写脚本】项中选择【SQL Server 2008】或【SQL Server 2005】或【SQL Server 2000】,选择2005或2000,则可以在对应的SQL Server 2005或2000上使用此次生成的脚本生成数据库;
4、在【脚本向导】窗口的【输出选项】步骤中,可以选择脚本文件保存的位置和保存方式,选择其中一种,点击【下一步】按钮,会自动生成脚本,生成成功后会在窗口显示【成功】。
可参考以下步骤截图:
sql Server数据库如何将一个库中的数据导入另一个库中
参考技术A 如果是一个实例下的不同数据库的话,跟操作同一个库时是一样的只要在要操作的表前面添加数据库名相关信息就可以了
如:
select
*
into
test1.dbo.to
from
test2.dbo.from
如果是不同实例的数据库之间的导入就比较麻烦了,
首先需开启Distributed
Transaction
Coordinator服务
然后给你个例子
--以下例子为MSDN上邹建大哥的例子,给你做下参考
/*--同步两个数据库的示例
有数据
srv1.库名..author有字段:id,name,phone,
srv2.库名..author有字段:id,name,telphone,adress
要求:
srv1.库名..author增加记录则srv1.库名..author记录增加
srv1.库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新
--*/
--大致的处理步骤
--1.在
srv1
上创建连接服务器,以便在
srv1
中操作
srv2,实现同步
exec
sp_addlinkedserver
'srv2','','SQLOLEDB','srv2的sql实例名或ip'
exec
sp_addlinkedsrvlogin
'srv2','false',null,'用户名','密码'
go
--2.在
srv1
和
srv2
这两台电脑中,启动
msdtc(分布式事务处理服务),并且设置为自动启动
我的电脑--控制面板--管理工具--服务--右键
Distributed
Transaction
Coordinator--属性--启动--并将启动类型设置为自动启动
go
--然后创建一个作业定时调用上面的同步处理存储过程就行了
企业管理器
--管理
--SQL
Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL
脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
exec
p_process
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL
Agent服务启动,并设置为自动启动,否则你的作业不会被执行
设置方法:
我的电脑--控制面板--管理工具--服务--右键
SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
--3.实现同步处理的方法2,定时同步
--在srv1中创建如下的同步处理存储过程
create
proc
p_process
as
--更新修改过的数据
update
b
set
name=i.name,telphone=i.telphone
from
srv2.库名.dbo.author
b,author
i
where
b.id=i.id
and
(b.name
>
i.name
or
b.telphone
>
i.telphone)
--插入新增的数据
insert
srv2.库名.dbo.author(id,name,telphone)
select
id,name,telphone
from
author
i
where
not
exists(
select
*
from
srv2.库名.dbo.author
where
id=i.id)
--删除已经删除的数据(如果需要的话)
delete
b
from
srv2.库名.dbo.author
b
where
not
exists(
select
*
from
author
where
id=b.id)
go
--
以上是关于如何将数据库sql server2008中的数据库生成脚本输出的主要内容,如果未能解决你的问题,请参考以下文章
如何将excel数据加载到sql server 2008表中?
SQL Server 2008转换成sql 2000数据库如何操作?
sql server 2008 一个数据库如何获取另一个数据库中的数据?
如何将所有数据库(快速)自 sql server 2008 express 传递到 sql server 2008 R2(无 express)