两个问题,如何复制表的时候全部复制过来? 二:先用Alter table 去把B库中的a表增加跟A库中的a表一样具有相同结构和字段,再复制了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 use Ainsert into B..a from A..a where ..... 第一个问题:在“导入数据”的选项中,选择“在sql server数据库之间复制对象和数据”然后选择选中“扩展属性”、“所有相关...”就可以了索引列等信息都会复制过去。不过印象中默认值好像复制不过去,自己试一下吧 第二个问题:讲一个简单易行的方法:1.先手动增加A库里的a表里的字段,与B库a表字段一致2.编写一个游标,把B库a表中的数据依次update到A库a表里这样做要确保两张表的数据是一致的,编写游标最好以表的一个标识字段作为判断update的依据,这样就比较保险了 語句select top 100 percent * into newtable from sourcetable --以源数据库为模板升级目标数据库 CREATE PROCEDURE P_UDB ( @Source_DB sysname --原数据库 ,@Des_DB sysname --目标数据库 ,@UserName sysname --用户名 ,@psw sysname --密码 ) ASset nocount on--/* 局部变量声明declare @ObjName sysname ,@SrvID int --服务器ID ,@DBsId int --数据库集ID ,@transferID int --传输ID ,@SDBId int --源数据库ID ,@DDBID int --目标数据库ID ,@SViewListID int --源数据库视图列表 ,@DViewListID int --目标数据库视图列表 ,@str Nvarchar(4000) ,@name sysname ,@hr int --执行语句返回值 ,@Error int --错误返回值(999:存储过程或触发器错误;9999:视图错误)--*/ --/*创建sqldmo对象 前面我们已经说过SQLDMO是个com,在SQL Server中使用OLE --自动化对象需要用到sp_OACreate等一系列的存储过程,读者如果有不明白的可以自--己查阅相关资料exec @hr=sp_oacreate 'SQLDMO.sqlserver',@SrvID outputif @hr<>0begin set @Error=1 goto PEndend--*/--/*连接服务器exec @hr=sp_oamethod @SrvID,'connect',null,@@ServerName,@UserName,@pswif @hr<>0begin set @Error=2 goto PEndend--*/--/*取数据库集exec @hr=sp_oagetproperty @SrvID,'databases',@DBsId output--*/--/*选择源数据库 exec @hr=sp_oamethod @DBsId,'item',@SDBId output,@Source_DBif @hr<>0 begin set @Error=3 goto PEndend--*/ --/*选择目标数据库 exec @hr=sp_oamethod @DBsId,'item',@DDBId output,@Des_DBif @hr<>0 begin set @Error=4 goto PEndend--*//*Tansfer属性设置(生成三大对象)exec @hr=sp_oacreate 'SQLDMO.Transfer',@transferID outputexec @hr=sp_oasetproperty @transferID,'DestServer',@@ServerNameexec @hr=sp_oasetproperty @transferID,'DestLogin',@UserNameexec @hr=sp_oasetproperty @transferID,'DestPassword ',@pswexec @hr=sp_oasetproperty @transferID,'DestDatabase',@des_DBexec @hr=sp_oasetproperty @transferID,'DropDestObjectsFirst ',1exec @hr=sp_oasetproperty @transferID,'CopyAllStoredProcedures ',1exec @hr=sp_oasetproperty @transferID,'CopyAllTriggers',1exec @hr=sp_oasetproperty @transferID,'CopyAllViews',1--exec @hr=sp_oasetproperty @transferID,'ScriptType ',1 这里大家可以试试这个属性exec @hr=sp_oamethod @DDBId,'Transfer ',null,@transferIDexec sp_OADestroy @TransferID if @hr<>0 begin set @Error=10 goto PEnd end*/PEnd: exec @hr = sp_OAMethod @SrvID, 'DisConnect' exec sp_OADestroy @SrvID print (@Error) Return (@Error) GO 数据库sql2000、2005、2008分别有哪几种类型的文件? 关于SQL赋权问题 请帮忙解答 ADO 连接字符串 SQL语句问题 如何修改字段名 【!菜鸟MM又来提问啦!简单的日期问题!】 更新SQL出错提示,麻烦高手指点一下。 更新 中文拼音缩写. 急问怎样查找数据的问题,请大侠帮忙 这个语句应该怎么写? 恳请赐教一UPDATE的语句 求一SQL语句!
insert into B..a from A..a where .....
在“导入数据”的选项中,选择“在sql server数据库之间复制对象和数据”
然后选择选中“扩展属性”、“所有相关...”就可以了
索引列等信息都会复制过去。不过印象中默认值好像复制不过去,自己试一下吧
讲一个简单易行的方法:
1.先手动增加A库里的a表里的字段,与B库a表字段一致
2.编写一个游标,把B库a表中的数据依次update到A库a表里
这样做要确保两张表的数据是一致的,编写游标最好以表的一个标识字段作为判断update的依据,这样就比较保险了
( @Source_DB sysname --原数据库
,@Des_DB sysname --目标数据库
,@UserName sysname --用户名
,@psw sysname --密码
)
AS
set nocount on
--/* 局部变量声明
declare @ObjName sysname
,@SrvID int --服务器ID
,@DBsId int --数据库集ID
,@transferID int --传输ID
,@SDBId int --源数据库ID
,@DDBID int --目标数据库ID
,@SViewListID int --源数据库视图列表
,@DViewListID int --目标数据库视图列表
,@str Nvarchar(4000)
,@name sysname
,@hr int --执行语句返回值
,@Error int --错误返回值(999:存储过程或触发器错误;9999:视图错误)
--*/ --/*创建sqldmo对象 前面我们已经说过SQLDMO是个com,在SQL Server中使用OLE --自动化对象需要用到sp_OACreate等一系列的存储过程,读者如果有不明白的可以自--己查阅相关资料exec @hr=sp_oacreate 'SQLDMO.sqlserver',@SrvID outputif @hr<>0begin set @Error=1 goto PEndend--*/--/*连接服务器exec @hr=sp_oamethod @SrvID,'connect',null,@@ServerName,@UserName,@pswif @hr<>0begin set @Error=2 goto PEndend--*/--/*取数据库集exec @hr=sp_oagetproperty @SrvID,'databases',@DBsId output--*/--/*选择源数据库 exec @hr=sp_oamethod @DBsId,'item',@SDBId output,@Source_DBif @hr<>0 begin set @Error=3 goto PEndend--*/ --/*选择目标数据库 exec @hr=sp_oamethod @DBsId,'item',@DDBId output,@Des_DBif @hr<>0 begin set @Error=4 goto PEndend--*//*Tansfer属性设置(生成三大对象)exec @hr=sp_oacreate 'SQLDMO.Transfer',@transferID outputexec @hr=sp_oasetproperty @transferID,'DestServer',@@ServerNameexec @hr=sp_oasetproperty @transferID,'DestLogin',@UserNameexec @hr=sp_oasetproperty @transferID,'DestPassword ',@pswexec @hr=sp_oasetproperty @transferID,'DestDatabase',@des_DBexec @hr=sp_oasetproperty @transferID,'DropDestObjectsFirst ',1exec @hr=sp_oasetproperty @transferID,'CopyAllStoredProcedures ',1exec @hr=sp_oasetproperty @transferID,'CopyAllTriggers',1exec @hr=sp_oasetproperty @transferID,'CopyAllViews',1--exec @hr=sp_oasetproperty @transferID,'ScriptType ',1 这里大家可以试试这个属性exec @hr=sp_oamethod @DDBId,'Transfer ',null,@transferIDexec sp_OADestroy @TransferID if @hr<>0 begin set @Error=10 goto PEnd end*/PEnd: exec @hr = sp_OAMethod @SrvID, 'DisConnect' exec sp_OADestroy @SrvID print (@Error) Return (@Error) GO