首页 - 数据库 - SQL Server

对于跨不同服务器的sql脚本执行语言的摘要

发布时间: 2007-04-19 05:03    作者: 未知    来源: 未知    浏览:    评论


对于相关的数据库脚本的手动执行的数据互导功能!

       关键的重点在于建立的连接关系,连接建立好后执行的数据库相关的脚本实现就方便的多了~~~~

1。从一个数据库的一张表B中向另外的一个数据库的表A(起码有相同的字段属性,或字段值)

insert into  A(字段1,字段2。。。字段n)

select 字段1,字段2,120,...字段n

from OPENDATASOURCE('SQLOLEDB','Data Source=B所在的服务器;User ID=用户名;Password=登陆口令').B库.dbo.B表

where 字段1=? and ...

该操作一般用在查询分析器中!

2。游标的利用,在服务器间传递数据的值

declare @GEN_ID nvarchar(4000)

declare @QUAN nvarchar(4000)

declare @FEE_STATUS_OPERATOR nvarchar(4000)

declare @FEE_STATUS_OPERATETIME nvarchar(4000)

declare @status_operateid nvarchar(4000)

declare @client_sname nvarchar(4000)

BEGIN TRAN STATUS

       declare USR cursor for select d.字段1,d.字段2  from  OPENDATASOURCE(

                'SQLOLEDB',

                'Data Source=服务器1;User ID=;Password='

               ).库1.dbo.表1 as g inner join OPENDATASOURCE(

                'SQLOLEDB',

                'Data Source=服务器1;User ID=;Password='

               ).库1.dbo.表1 as d  on g.字段1=d.字段1 inner join OPENDATASOURCE(

                'SQLOLEDB',

                'Data Source=服务器1;User ID=;Password='

               ).库2.dbo.表1‘ as s on g.字段1=s.字段1 where g.字段2=0 and g.字段3=0 and s.字段4=6

              open USR

              fetch next from USR into @GEN_ID,@QUAN

              WHILE @@FETCH_STATUS = 0

                     BEGIN

                     update 库A.dbo.表 set 字段=@QUAN where 字段1=rtrim(@GEN_ID)

                     fetch next from USR into  @GEN_ID,@QUAN

                     end

              close USR

              deallocate USR

 

       declare USR1 cursor for select 字段1,字段2,120,...字段n

              from  OPENDATASOURCE(

                'SQLOLEDB',

                'Data Source=服务器1;User ID=;Password='

               ).库1.dbo.表1 as g inner join OPENDATASOURCE(

                'SQLOLEDB',

                'Data Source=服务器1;User ID=;Password='

               ).库1.dbo.表1 as d  on g.字段1=d.字段1

              where g.字段2=0 and g.字段3=0 and s.字段4=6

              open USR1

              fetch next from USR into @GEN_ID,@FEE_STATUS_OPERATOR,@FEE_STATUS_OPERATETIME,@status_operateid,@client_sname

              WHILE @@FETCH_STATUS = 0

              BEGIN

              insert into  A(字段1,字段2。。。字段n)

                     values(@GEN_ID,'2','0',@FEE_STATUS_OPERATOR,@FEE_STATUS_OPERATETIME,@status_operateid,@client_sname)

             

              fetch next from USR1 into @GEN_ID,@FEE_STATUS_OPERATOR,@FEE_STATUS_OPERATETIME,@status_operateid,@client_sname

              end

       close USR1

       deallocate USR1

 

       ----------------说明对于游标的利用可以多次,唯一的缺点的就是执行的时间过长!对于这方面要权衡考虑!

 

 

if (@@error<>0)

       begin

              rollback tran STATUS

       end

else

       begin

              commit tran STATUS

       end

------------事物处理

TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多