|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。对照|剧本|数据/*MSSQL新旧库数据字典对照剧本*/--说明1:新旧库必需在统一数据库服务器统一实例中,最好以Sa身份登进。
--说明2:本剧本可作为体系晋级改革,失掉相干信息后作数据迁徙之用。
declare@iint
set@i=4/*说明3:1为要失掉新库增添的数据字典信息;
2为要失掉旧库多出的数据字典信息;
3为要失掉新库增添的表的数据字典信息;
4为要失掉旧库多出的表的数据字典信息*/
usetemp--翻开旧库
SELECTsysobjects.nameAS[table],CASEWHENCAST(sysproperties.[value]ASvarchar)
ISNULLTHENELSECAST(sysproperties.[value]ASvarchar)ENDAS表申明,
syscolumns.nameASfield,CASEWHENCAST(properties.[value]ASvarchar)ISNULL
THENELSECAST(properties.[value]ASvarchar)ENDAS字段申明,
systypes.nameAStype,syscolumns.length,
ISNULL(COLUMNPROPERTY(syscolumns.id,syscolumns.name,Scale),0)
AS小数位数,syscolumns.isnullableASisnull,
CASEWHENsyscomments.textISNULL
THENELSEsyscomments.textENDAS[Default],
CASEWHENCOLUMNPROPERTY(syscolumns.id,syscolumns.name,IsIdentity)
=1THEN√ELSEENDAS标识,CASEWHENEXISTS
(SELECT1
FROMsysobjects
WHERExtype=PKANDnameIN
(SELECTname
FROMsysindexes
WHEREindidIN
(SELECTindid
FROMsysindexkeys
WHEREid=syscolumns.idANDcolid=syscolumns.colid)))
THEN√ELSEENDAS主键into#old
FROMsyscolumnsINNERJOIN
sysobjectsONsysobjects.id=syscolumns.idINNERJOIN
systypesONsyscolumns.xtype=systypes.xtypeLEFTOUTERJOIN
syspropertiespropertiesONsyscolumns.id=properties.idAND
syscolumns.colid=properties.smallidLEFTOUTERJOIN
syspropertiesONsysobjects.id=sysproperties.idAND
sysproperties.smallid=0LEFTOUTERJOIN
syscommentsONsyscolumns.cdefault=syscomments.id
WHERE(sysobjects.xtype=U)
useaccdb--翻开新库
SELECTsysobjects.nameAS[table],CASEWHENCAST(sysproperties.[value]ASvarchar)
ISNULLTHENELSECAST(sysproperties.[value]ASvarchar)ENDAS表申明,
syscolumns.nameASfield,CASEWHENCAST(properties.[value]ASvarchar)ISNULL
THENELSECAST(properties.[value]ASvarchar)ENDAS字段申明,
systypes.nameAStype,syscolumns.length,
ISNULL(COLUMNPROPERTY(syscolumns.id,syscolumns.name,Scale),0)
AS小数位数,syscolumns.isnullableASisnull,
CASEWHENsyscomments.textISNULL
THENELSEsyscomments.textENDAS[Default],
CASEWHENCOLUMNPROPERTY(syscolumns.id,syscolumns.name,IsIdentity)
=1THEN√ELSEENDAS标识,CASEWHENEXISTS
(SELECT1
FROMsysobjects
WHERExtype=PKANDnameIN
(SELECTname
FROMsysindexes
WHEREindidIN
(SELECTindid
FROMsysindexkeys
WHEREid=syscolumns.idANDcolid=syscolumns.colid)))
THEN√ELSEENDAS主键into#new
FROMsyscolumnsINNERJOIN
sysobjectsONsysobjects.id=syscolumns.idINNERJOIN
systypesONsyscolumns.xtype=systypes.xtypeLEFTOUTERJOIN
syspropertiespropertiesONsyscolumns.id=properties.idAND
syscolumns.colid=properties.smallidLEFTOUTERJOIN
syspropertiesONsysobjects.id=sysproperties.idAND
sysproperties.smallid=0LEFTOUTERJOIN
syscommentsONsyscolumns.cdefault=syscomments.id
WHERE(sysobjects.xtype=U)
if@i=1
begin
selectn.*--新库与旧库比拟较后新库增添的数据字典信息
from#newnleftjoin#oldoonn.[table]=o.[table]andn.field=o.fieldwhereo.[table]isnull
oro.fieldisnullorderbyn.[table],n.field
end
else
begin
if@i=2
begin
selecto.*--新库与旧库比拟较后旧库多出的数据字典信息
from#newnrightjoin#oldoonn.[table]=o.[table]andn.field=o.fieldwheren.[table]isnull
orn.fieldisnullorderbyo.[table],o.field
end
else
begin
if@i=3
begin
select*--新库与旧库比拟较后新库增添的表的数据字典信息
from#newwhere[table]all(select[table]from#old)orderby[table],field
end
else
begin
if@i=4
begin
select*--新库与旧库比拟较后旧库多出的表的数据字典信息
from#oldwhere[table]all(select[table]from#new)orderby[table],field
end
else
begin
select堕落啦
end
end
end
end
droptable#old
droptable#new
任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的数据库服务,它可以支持多变的需求。 |
|