SQLServer的几种数据传输方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer的几种数据传输方法相关的知识,希望对你有一定的参考价值。
参考技术A 本篇文章讨论的是有关数据库之间数据传送的问题 在实际的应用领域里都可以用到 具有实用价值 例如 公司目前数据库中的信息量不够 需要第三方的数据支持 这事就有几种情况了 对方直接提供数据库帐号 你可以直接访问(可能性很小) 对方把数据库的信息自动转换成 mdb;dbf;TXT等格式的文件 然后传到你的服务器上 通过一个数据库接口程序 直接插到你的数据库中 这里还有个问题 无论对方提供的数据的结构是否和我们自己的一样 都不能直接插到我们的库中 这样一旦有问题会破坏我们的数据库 那么我们怎么办呢? 下面的文档会有很好的答案 具体示例 本篇文章讨论的是有关数据库之间数据传送的问题 在实际的应用领域里都可以用到 具有实用价值 例如 公司目前数据库中的信息量不够 需要第三方的数据支持 这事就有几种情况了 对方直接提供数据库帐号 你可以直接访问(可能性很小) 对方把数据库的信息自动转换成 mdb;dbf;TXT等格式的文件 然后传到你的服务器上 通过一个数据库接口程序 直接插到你的数据库中 这里还有个问题 无论对方提供的数据的结构是否和我们自己的一样 都不能直接插到我们的库中 这样一旦有问题会破坏我们的数据库 那么我们怎么办呢? 下面的文档会有很好的答案 具体示例 本篇文章讨论的是有关数据库之间数据传送的问题 在实际的应用领域里都可以用到 具有实用价值 例如 公司目前数据库中的信息量不够 需要第三方的数据支持 这事就有几种情况了 对方直接提供数据库帐号 你可以直接访问(可能性很小) 对方把数据库的信息自动转换成 mdb;dbf;TXT等格式的文件 然后传到你的服务器上 通过一个数据库接口程序 直接插到你的数据库中 这里还有个问题 无论对方提供的数据的结构是否和我们自己的一样 都不能直接插到我们的库中 这样一旦有问题会破坏我们的数据库 那么我们怎么办呢? 下面的文档会有很好的答案 一 数据库间的 COPY 导入导出等 利用数据库自带的向导进行数据库之间的传递 好处 可以在不同的数据库接口间传递数据 缺点 传递数据的过程中不能对数据进行更改 技巧 可以利用任务(JOB)定时取需要的数据 二 利用脚本和任务(JOB)更改处理数据 编写相关的数据库脚本 然后在任务(JOB)中运行 好处 可以更改插入的内容和插入的位置 使用灵活 缺点 要自己手写代码 技巧 可以配合导入导出 利用任务(JOB)实现强大的功能 具体示例 用途 把其它数据库服务器中的数据( mdb; dbf;sqlserver 等) 定时导入自己的数据库中使用 有个问题是 因为我们自己的数据库已经在使用 并且结构和要导入的数据库大不相同 而且原数据库中的某些内容要调整 所以我们利用了中间数据库 如图 具体的脚本程序 /*用途 把第三方提供的数据信息时时导入我们自己的数据库中 步骤 用 DTS (导入导出向导)把数据导入到中间数据库中 要设置任务定时导入 编写下面的脚本 然后把它加在 DTS 任务的后一步 即运行完 DTS后在运行此脚本 */ declare @id int @title nvarchar( ) 定义变量 declare test cursor for 定义游标 select DISTINCT id title from society where datediff(day date getdate()) < 1 open test --打开游标 fetch next from test into @id,@title while @@fetch_status = 0 --循环取数据 begin declare @titletemp nvarchar(255) declare test1 cursor for select title from dbB.dbo.tb_infogegu where title=@title and datediff(day,date,getdate()) = 0 open test1 fetch next from test1 into @titletemp if( @@fetch_status = 0) --表中该记录已经存在,删除该记录 DELETE FROM society WHERE id=@id Else --不存在时,插入该记录 begin insert into dbB.dbo.tb_infogegu (title,content,channel,date,tradetype,stockcode, fromdate) select top 1 title,content,channel,date,tradetype,stockcode, fromdate from society where id=@id order by date DELETE FROM society WHERE id=@id end close test1 deallocate test1 fetch next from test into @id,@title end DELETE FROM society close test deallocate test GO lishixinzhi/Article/program/SQLServer/201311/22150
SQL Server启动的几种方法
SQL Server 启动有以下几种方法:
(1)在Control Panel——Administrative Tools——Services,找到SQL Server (XXX)进行启动。
其中XXX为实例名,默认实例名为“MSSQLSERVER”。
Figure-1: 在OS Services中启动
(2)在SQL Server Configuration Manager中启动。
Figure-2: 在SQL Server Configuration Manager中启动
(3)在SSMS的Object Explorer中启动。
不过这种方法在已经打开Object Explorer并且没有断开与Database Engine的连接才能使用。适合于正在使用SSMS,需要重启SQL Server实例的快速方法。
Figure-3: SSMS中停止实例服务
(4)在CMD下启动。
语法是:NET START "Service name",相应的停止服务是:NET STOP "Service name"。其中Service name在Control Panel——Administrative Tools——Services,右键选择相应的服务——Properties中查看。
Figure-4: 查看Service name
Figure-5: CMD下启动和停止SQL Server默认实例
注意,需要使用足够的权限的用户才能启动/停止服务,否则会报以下的错误:
Figure-6: 权限不足,导致操作失败
使用PowerShell,默认PS开头的提示符下,可以成功启动/停止默认实例。但如果操作命名实例,则会提示“服务名无效”,即使操作用户拥有足够的权限。
Figure-7: 使用PowerShell启动/停止SQL Server服务
解决方法就是在PowerShell转入CMD下进行操作。
Figure-8: 转入CMD下操作成功
(5)在CMD下,直接运行“sqlserver.exe”
Figure-9: 找到sqlserver.exe的路径和启动参数
Figure-10: 在CMD下直接执行sqlserver.exe
Figure-11: 在CMD下直接执行sqlserver.exe后显示的信息
前面介绍的4种方法,SQL Server是以后台服务的形式启动的,SQL Server的日志信息会记录到日志文件里。而第5种方法是以一般应用程序在运行,在SQL Server的日志信息直接出现在当前的CMD窗口中。如果按CTRL + C并以Y结束,或关闭CMD窗口,SQL Server进程会被关闭。
Figure-12: CTRL + C并以Y结束sqlserver.exe进程
这种启动SQL Server后,在Services里是看不到启动的,在SSMS也显示为未启动。但是可以正常使用SQL Server。
Figure-13: Service中显示SQL Server并未启动
Figure-14: SSMS中的Database Engine显示停止状态,但能够执行SQL查询
如果此时在SSMS或在Services里再以服务的形式启动SQL Server,会报以下的错误:
Figure-15: 在SSMS中启动时报错
Figure-16: 在Service中启动时报错
同样的,如果已经以服务的形式启动了SQL Server,再以第5种方法再去启动,会报以下错误:
Figure-17: 再次直接执行sqlserver.exe时报错
SQL Server的几种方法就介绍到这里。其实主要使用前面两种方法即可,推荐第2种方法。为什么呢?等以后有机会介绍SQL Server启动的过程,再作解释。
NET START命令的使用,参考以下文档:
以上是关于SQLServer的几种数据传输方法的主要内容,如果未能解决你的问题,请参考以下文章