************************数据库之间数据复制问题*************************

zsgbox 2006-05-24 02:46:54
1、如何把一个数据库中的全部存储过程及函数复制到另一个数据库中,存储过程有加密的。
2、或者,在两个表结构完全相同的数据库,但数据内容不一样,怎么把一个数据库中所有的表及其据,全部换成另一个的,标识种子也跟以前一样。比如说自增ID,要保持跟原数据一样,以前是5,拷贝过来还要是5,我曾经试着把所有表删除,再导入,但是自增属性,默认值都没了。
请指点。
...全文
185 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qian_gh 2006-05-24
  • 打赏
  • 举报
回复
用订阅发布方式
hawk_js 2006-05-24
  • 打赏
  • 举报
回复
直接分离/拷贝/附加
子陌红尘 2006-05-24
  • 打赏
  • 举报
回复
2、如果要整个数据库复制,可以用备份/恢复方式实现,也可以采用分离/拷贝/附加方式实现。
子陌红尘 2006-05-24
  • 打赏
  • 举报
回复
1、邹老大以前写的存储过程复制的例子,没有考虑加密的问题:
-------------------------------------------------------------------------------------------------------------------

use master
go

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_copyProce]') and

OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_copyProce]
GO

/*--生成表数据脚本的通用存储过程,

功能:将一个数据库中的存储过程,复制到另一数据库中
目标数据库中已经有的存储过程不覆盖

--邹建 2005.01(引用请保留此信息)--*/

/*--调用示例

exec master.dbo.sp_copyProce 'a','b'
--*/

create proc sp_copyProce
@s_dbname sysname, --要复制存储过程的源数据库名
@d_dbname sysname --目标数据库名
as
set nocount on
if db_id(@s_dbname) is null
begin
raiserror('数据库"%s"不存在',1,16,@s_dbname)
return
end
if db_id(@d_dbname) is null
begin
raiserror('数据库"%s"不存在',1,16,@d_dbname)
return
end
select @s_dbname='['+replace(@s_dbname,']',']]')+']'
,@d_dbname='['+replace(@d_dbname,']',']]')+']'

--复制存储过程信息到临时表
create table #sys_syscomments_bak(name sysname,xtype char(2),number smallint,colid

smallint,status smallint,ctext varbinary(8000))
exec('
insert #sys_syscomments_bak
(name,xtype,number,colid,status,ctext)
select o.name,o.xtype,c.number,c.colid,c.status,c.ctext
from '+@s_dbname+'.dbo.syscomments c,'+@s_dbname+'.dbo.sysobjects o
where c.id=o.id
and o.status>=0
and o.xtype=''P''
and not exists(
select * from '+@d_dbname+'.dbo.sysobjects where name=o.name)
')

--创建存储过程
declare tb cursor local for
select 'use '+@d_dbname+' exec(''create proc dbo.['+replace(name,N']',N']]')+'] as --'')

exec sp_recompile ['+replace(name,N']',N']]')+']'
from #sys_syscomments_bak
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb

--复制存储过程结构
exec sp_configure 'allow updates',1 reconfigure with override
begin tran
exec('
delete c
from '+@d_dbname+'.dbo.syscomments c,'+@d_dbname+'.dbo.sysobjects

o,#sys_syscomments_bak ob
where c.id=o.id and o.name=ob.name and o.xtype=ob.xtype
insert '+@d_dbname+'.dbo.syscomments([id],[number],[colid],[status],[ctext])
select o.[id],ob.[number],ob.[colid],ob.[status],ob.[ctext]
from '+@d_dbname+'.dbo.sysobjects o,#sys_syscomments_bak ob
where o.name=ob.name and o.xtype=ob.xtype')
commit tran
exec sp_configure 'allow updates',0 reconfigure with override
go


--使用测试
create database a
go
use a
go
create proc p_test1
as
select 'test1'
go


create proc p_test2
as
select 'test2'
go

create database b
go

exec master.dbo.sp_copyProce 'a','b'
go
select * from b.dbo.sysobjects where xtype='P'

exec b.dbo.p_test1
exec b.dbo.p_test2
go

use master
go

drop database a,b
drop proc sp_copyProce
zninger 2006-05-24
  • 打赏
  • 举报
回复
加密的存储过车可以通过备份恢复来实现

自增的字段在操作的时候删除数据是不会从1开始的,只有drop表,再重新建立才能从1开始;或者是在系统表中有可以初始化的记载,你可以修改系统表
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧