如何将SQLServer2005中的数据同步到Oracle中【分分快

作者:编程技术

 

分分快三计划 1SELECT *
分分快三计划 2FROM MIS..MIS.CONTRACT_PROJECT

1、从数据库中随地pdm(要求建构odbc数据源卡塔尔国
   a、使用调控面板-管理工科具-odbc数据源 建构
   或
   b、在pd中创制数据源
  
2、从sql 脚本导出 pdm

带有效用:

 

  1. 表构造划伪造计:创设表、字段、主键、外键、索引和注释;

2. 表描述:可径直编辑文字描述快速生成表构造,爱用键盘的人会中意那几个效应;

3. 模型图:自动生成模型图;可兼顾和体现物理/逻辑视图,扶植电动结构、平移、收缩放大等操作;

4. 导入数据库:导入数据库中的本来就有对象,即所谓的逆向工程(扶持ORACLE、MYSQL、SQLSECR-VVEKoleos和ODBC卡塔尔;

5. 生成数据库:可生成直接创立数据库的SQL脚本;也可与现成数据库比较,然后生成同步脚本的效用,不至于错过现成数量;

  1. 变迁代码:近年来可生成C 、Pas、C#和Java的简要类定义代码;

  2. 导出EXCEL。 

 

分分快三计划 3分分快三计划 4SQLServer和Oracle的对应
分分快三计划 5ORACLE    bigint    NUMBER    19    3    1
分分快三计划 6ORACLE    binary    BLOB    NULL    0    1
分分快三计划 7ORACLE    binary    RAW    -1    4    1
分分快三计划 8ORACLE    bit    NUMBER    1    3    1
分分快三计划 9ORACLE    char    CHAR    -1    4    1
分分快三计划 10ORACLE    char    CLOB    NULL    0    1
分分快三计划 11ORACLE    char    VARCHAR2    -1    4    1
分分快三计划 12ORACLE    datetime    DATE    NULL    0    1
分分快三计划 13ORACLE    decimal    NUMBER    -1    3    1
分分快三计划 14ORACLE    double precision    FLOAT    NULL    0    1
分分快三计划 15ORACLE    float    FLOAT    NULL    0    1
分分快三计划 16ORACLE    image    BLOB    NULL    0    1
分分快三计划 17ORACLE    int    NUMBER    10    3    1
分分快三计划 18ORACLE    money    NUMBER    19    3    1
分分快三计划 19ORACLE    nchar    NCHAR    -1    4    1
分分快三计划 20ORACLE    nchar    NCLOB    NULL    0    1
分分快三计划 21ORACLE    ntext    NCLOB    NULL    0    1
分分快三计划 22ORACLE    numeric    NUMBER    -1    3    1
分分快三计划 23ORACLE    nvarchar    NCLOB    NULL    0    1
分分快三计划 24ORACLE    nvarchar    NVARCHAR2    -1    4    1
分分快三计划 25ORACLE    nvarchar(max)    NCLOB    NULL    0    1
分分快三计划 26ORACLE    real    REAL    NULL    0    1
分分快三计划 27ORACLE    smalldatetime    DATE    NULL    0    1
分分快三计划 28ORACLE    smallint    NUMBER    5    3    1
分分快三计划 29ORACLE    smallmoney    NUMBER    10    3    1
分分快三计划 30ORACLE    sysname    NVARCHAR2    128    4    1
分分快三计划 31ORACLE    text    CLOB    NULL    0    1
分分快三计划 32ORACLE    timestamp    RAW    8    4    1
分分快三计划 33ORACLE    tinyint    NUMBER    3    3    1
分分快三计划 34ORACLE    uniqueidentifier    CHAR    38    4    1
分分快三计划 35ORACLE    varbinary    BLOB    NULL    0    1
分分快三计划 36ORACLE    varbinary    RAW    -1    4    1
分分快三计划 37ORACLE    varbinary(max)    BLOB    NULL    0    1
分分快三计划 38ORACLE    varchar    CLOB    NULL    0    1
分分快三计划 39ORACLE    varchar    VARCHAR2    -1    4    1
分分快三计划 40ORACLE    varchar(max)    CLOB    NULL    0    1
分分快三计划 41ORACLE    xml    NCLOB    NULL    0    1
分分快三计划 42ORACLE    bigint    NUMBER    19    3    1
分分快三计划 43ORACLE    binary    BLOB    NULL    0    1
分分快三计划 44ORACLE    binary    RAW    -1    4    1
分分快三计划 45ORACLE    bit    NUMBER    1    3    1
分分快三计划 46ORACLE    char    CHAR    -1    4    1
分分快三计划 47ORACLE    char    CLOB    NULL    0    1
分分快三计划 48ORACLE    char    VARCHAR2    -1    4    1
分分快三计划 49ORACLE    datetime    DATE    NULL    0    1
分分快三计划 50ORACLE    decimal    NUMBER    -1    3    1
分分快三计划 51ORACLE    double precision    FLOAT    NULL    0    1
分分快三计划 52ORACLE    float    FLOAT    NULL    0    1
分分快三计划 53ORACLE    image    BLOB    NULL    0    1
分分快三计划 54ORACLE    int    NUMBER    10    3    1
分分快三计划 55ORACLE    money    NUMBER    19    3    1
分分快三计划 56ORACLE    nchar    CHAR    -1    4    1
分分快三计划 57ORACLE    nchar    CLOB    NULL    0    1
分分快三计划 58ORACLE    ntext    CLOB    NULL    0    1
分分快三计划 59ORACLE    numeric    NUMBER    -1    3    1
分分快三计划 60ORACLE    nvarchar    CLOB    NULL    0    1
分分快三计划 61ORACLE    nvarchar    VARCHAR2    -1    4    1
分分快三计划 62ORACLE    nvarchar(max)    CLOB    NULL    0    1
分分快三计划 63ORACLE    real    REAL    NULL    0    1
分分快三计划 64ORACLE    smalldatetime    DATE    NULL    0    1
分分快三计划 65ORACLE    smallint    NUMBER    5    3    1
分分快三计划 66ORACLE    smallmoney    NUMBER    10    3    1
分分快三计划 67ORACLE    sysname    VARCHAR2    128    4    1
分分快三计划 68ORACLE    text    CLOB    NULL    0    1
分分快三计划 69ORACLE    timestamp    RAW    8    4    1
分分快三计划 70ORACLE    tinyint    NUMBER    3    3    1
分分快三计划 71ORACLE    uniqueidentifier    CHAR    38    4    1
分分快三计划 72ORACLE    varbinary    BLOB    NULL    0    1
分分快三计划 73ORACLE    varbinary    RAW    -1    4    1
分分快三计划 74ORACLE    varbinary(max)    BLOB    NULL    0    1
分分快三计划 75ORACLE    varchar    CLOB    NULL    0    1
分分快三计划 76ORACLE    varchar    VARCHAR2    -1    4    1
分分快三计划 77ORACLE    varchar(max)    CLOB    NULL    0    1
分分快三计划 78ORACLE    xml    CLOB    NULL    0    1
分分快三计划 79ORACLE    bigint    NUMBER    19    3    1
分分快三计划 80ORACLE    binary    BLOB    NULL    0    1
分分快三计划 81ORACLE    binary    RAW    -1    4    1
分分快三计划 82ORACLE    bit    NUMBER    1    3    1
分分快三计划 83ORACLE    char    CHAR    -1    4    1
分分快三计划 84ORACLE    char    CLOB    NULL    0    1
分分快三计划 85ORACLE    char    VARCHAR2    -1    4    1
分分快三计划 86ORACLE    datetime    DATE    NULL    0    1
分分快三计划 87ORACLE    decimal    NUMBER    -1    3    1
分分快三计划 88ORACLE    double precision    FLOAT    NULL    0    1
分分快三计划 89ORACLE    float    FLOAT    NULL    0    1
分分快三计划 90ORACLE    image    BLOB    NULL    0    1
分分快三计划 91ORACLE    int    NUMBER    10    3    1
分分快三计划 92ORACLE    money    NUMBER    19    3    1
分分快三计划 93ORACLE    nchar    NCHAR    -1    4    1
分分快三计划 94ORACLE    nchar    NCLOB    NULL    0    1
分分快三计划 95ORACLE    ntext    NCLOB    NULL    0    1
分分快三计划 96ORACLE    numeric    NUMBER    -1    3    1
分分快三计划 97ORACLE    nvarchar    NCLOB    NULL    0    1
分分快三计划 98ORACLE    nvarchar    NVARCHAR2    -1    4    1
分分快三计划 99ORACLE    nvarchar(max)    NCLOB    NULL    0    1
分分快三计划 100ORACLE    real    REAL    NULL    0    1
分分快三计划 101ORACLE    smalldatetime    DATE    NULL    0    1
分分快三计划 102ORACLE    smallint    NUMBER    5    3    1
分分快三计划 103ORACLE    smallmoney    NUMBER    10    3    1
分分快三计划 104ORACLE    sysname    NVARCHAR2    128    4    1
分分快三计划 105ORACLE    text    CLOB    NULL    0    1
分分快三计划 106ORACLE    timestamp    RAW    8    4    1
分分快三计划 107ORACLE    tinyint    NUMBER    3    3    1
分分快三计划 108ORACLE    uniqueidentifier    CHAR    38    4    1
分分快三计划 109ORACLE    varbinary    BLOB    NULL    0    1
分分快三计划 110ORACLE    varbinary    RAW    -1    4    1
分分快三计划 111ORACLE    varbinary(max)    BLOB    NULL    0    1
分分快三计划 112ORACLE    varchar    CLOB    NULL    0    1
分分快三计划 113ORACLE    varchar    VARCHAR2    -1    4    1
分分快三计划 114ORACLE    varchar(max)    CLOB    NULL    0    1
分分快三计划 115ORACLE    xml    NCLOB    NULL    0    1

       若是你不但有个正在使有个别数据库,你还应该有一下成立库的脚本,那你发财了!因为用.sql的本子生成的模子,就不设有用数据库生成的劣点了,具体操作如下:

选择表明:

模型图中可 按加减号放大缩短,方向键平移,奥迪Q5复原,F居中;

表的描述字中,能够输入简写字母代表数据类型,S,I,F,D,Y,E,B分别表示文本,整数,浮点数,时间,真假,枚举,文件,如 
  
测试表 
-------- 
ID PK 
RID FK 
标题 S(200) 
数量 I 
单价 F(10,2) 
日期 D 
注释 S 
  
外键关系近年来得以在模型图上成立彰显,或在字段的关系表字段里设置;

导入生成成效可支撑ORACLE、MYSQL、SQLSE汉兰达VE科雷傲和ODBC数据库; 

调换作用在未连接数据库时,生成的是创建数据库的初阶化SQL;独有连接了数据库,才会与数据库举行比对生成进级SQL;

为制止数据遗失,同步数据库时不会删除字段,但照旧会转换注释方式的相应SQL;

 

修改INI文件自定义配置(菜单:工具|改正INI配置卡塔尔:

[DefaultFieldTypes] ——改善缺省数据类型对应的大意类型
1=String:VA奥迪Q3STENCORE(二〇〇二) ——改正逻辑类型名称叫String的情理类型名叫VALacrosseSTOdyssey,私下认可长度为二零零二
2=Integer:DEPASSATL ——改进逻辑类型名叫Integer的物理类型名叫DEINSPIREL,无暗中认可长度
[CustFieldTypes] ——加多额外的数据类型到花色下拉列表
1=BigInt
2=Decimal
3=TestUnk
[CustDataTypeReplaces] ——钦命替换字段类型
1=VARCHA福睿斯2:NVARCHA智跑2 ——将VARCHAWrangler2替换为NVARCHARAV42(全字相称卡塔尔国
2=NUMBE揽胜(10):DECamryL ——将NUMBE宝马X5(10)替换为DELIVINAL(全字相配卡塔 尔(阿拉伯语:قطر‎
3=%TEXT%:NCLOB ——将TEXT替换为NCLOB(模糊匹配,相同SQL中的like操作卡塔 尔(阿拉伯语:قطر‎
4=%RAW:BLOB ——将RAW替换为BLOB(侧面模糊匹配,左边准确相称,相近SQL中的like操作卡塔尔国
[Options]
AutoSaveMinutes=5  ——按期每5分钟自动保存,保存为同目录.tmp文件(打开时自动加载tmp,想过来加载原始文件的话要先删除tmp卡塔 尔(阿拉伯语:قطر‎,为0则不保留
菲尔德Name马克斯DrawSize=64  ——在模型图上同意呈现的最大字段名长度
FieldTypeMaxDrawSize=48  ——在模型图上同意显示的最大字段类型长度
CreateSeqForOracle=0  ——制止为ORACLE表生成系列号
OCIDLL=D:oracleora112instantclientoci.dll  ——钦定OCI.dll的门路(用于instant client或装了几个ORACLE client时卡塔尔

 

再有意气风发对高效的小操作:

/ 键 缩放至特级大小

在一个模子内,按表名的第二个字母的键,会直接展开该表的叙说分界面。

 

接下去讲一下自己认为能对我们平时支出有超级大帮扶的的功效,这正是她的本子。

脚本语言是 pascal 语言,一个已经凉了的语言。所以不建议大家在上头费用精力。

何况该软件的言语就好像和平日的 pascal 语言法则不太相近,pascal是有三种版本的,这里小编也懒得深刻切磋了。

 

下边那些正是 C# 的实体类脚本,在软件的私下认可根底上修剪退换的。大家能够简轻便单明了一下,语言的语法都以相同的。

function DEF_CTMETAFIELD_DATATYPE_NAMES_CSHARP(idx: TCtFieldDataType): string;
begin
  case Integer(idx) of
    0: Result := 'unknown';
    1: Result := 'string';
    2: Result := 'int';
    3: Result := 'decimal';//替换double
    4: Result := 'DateTime?';//可空类型
    5: Result := 'bool';
    6: Result := 'enum';
    7: Result := 'var';
    8: Result := 'object';
    9: Result := 'List';
    10: Result := 'function';
    11: Result := 'EventHnadler';
    12: Result := 'type';
  else
    Result := 'unknown';
  end;
end;

//获取属性名
function getPublicName(N: string): string;
begin
  Result := N;
  if (Result <> '') then
    if Result[1] >= 'a' then
      if Result[1] <= 'z' then
        Result[1] := Chr(Ord(Result[1]) - (Ord('a') - Ord('A')));
end;

function GetDesName(p, n: string): string;
begin
  if p = '' then
    Result := n
  else
    Result := p;
end;




var
  I, L: Integer;
  clsName, S, T, V, FT: string;
  f: TCtMetaField;

//获取字段名
function GFieldName(Fld: TCtMetaField): string;
begin
  Result := GetDesName(f.Name, f.DisplayName);
end;

//获取字段类型
function GFieldType(Fld: TCtMetaField): string;
begin
    Result := DEF_CTMETAFIELD_DATATYPE_NAMES_CSHARP(f.DataType);
end;

//程序开始
procedure AddFieldInfo;
begin
  S := GetDesName(f.Name, f.DisplayName);
  begin
      FT := DEF_CTMETAFIELD_DATATYPE_NAMES_CSHARP(f.DataType);
    S := 'public '   FT   ' '   getPublicName(S)
        '{'
        'get;'
        'set;'
        '}'   #13#10;
  end;

  T := F.GetFieldComments;
  if T <> '' then
  begin
      S :='/// <summary>'   #13#10
        '///'   T   #13#10
        '/// </summary>'   #13#10
        S;
  end;

  CurOut.Add('    '   StringReplace(S, #13#10, #13#10'    ', [rfReplaceAll]));
end;


begin
  with CurTable do
  begin
    S := GetTableComments;

    CurOut.Add('');

    CurOut.Add('using System;');
    CurOut.Add('using System.Text;');
    CurOut.Add('');
    CurOut.Add('namespace '   Name);
    CurOut.Add('{');

    S := GetTableComments;
    if S <> '' then
    begin
      S := StringReplace(S, '}', '}', [rfReplaceAll]);
      CurOut.Add('  //'   StringReplace(S, #13#10, #13#10'  ', [rfReplaceAll]));
    end;

    L := 0;
    for I := 0 to MetaFields.Count - 1 do
    begin
      f := MetaFields[I];
      S := GetDesName(f.Name, f.DisplayName);
      if L < Length(S) then
        L := Length(S);
    end;

    //表名
    clsName := Name;
    CurOut.Add('  [NPoco.TableName("'   clsName   '")]');
    CurOut.Add('  [NPoco.PrimaryKey("Id", AutoIncrement = true)]');
    CurOut.Add('  public class '   clsName);
    CurOut.Add('  {');
    CurOut.Add('');

    //构造函数
    CurOut.Add('    public '   clsName   '()');
    CurOut.Add('    {');
    CurOut.Add('    }');

    for I := 0 to MetaFields.Count - 1 do
    begin
      f := MetaFields[I];
      AddFieldInfo;
    end;

    CurOut.Add('  }');
    CurOut.Add('}');
  end;
end.

 

查阅Oracle数据库中是不是曾经有多少了。
4.创立SQLAgent,将以上联合签名SQL语句作为实施语句,每日依期同步三次。
如此我们的联手就完毕了。
此地需求专心的是MIS..MIS.CONTRACT_PROJECT 这里不可不要大写,若是是小写的话会促成同步退步。

具体操作步骤:

 EZDML

 

EZDML是三个数据库建表的软件。

可高效的扩充多少库表结构划杜撰计,建构数据模型。

就像是大家常用的数据库建人体模特工具如 PowerDesigner、E索罗德WIN、E瑞虎-Studio 和 Rational-罗斯 等的精品精短版。

该软件是从 二零零五 年 4 月开荒现今仍然在维护,前段时间在 2017 年 8 月 5 日 更新了 V2.15 版本。

作者的振作振作值得大家学习。

 

2.创造链接服务器。我们将Oracle系统作为SQLServer的链接服务器步向到SQLServer中。
具体做法参见小编原先的篇章
3.选拔SQL语句通过链接服务器将SQLServer数据写入Oracle中。
比如大家树立了链接服务器MIS,而Oracle中在MIS顾客下边创设了表contract_project,那么大家的SQL语句就是:

缺点:

软件官方网址:

分分快三计划 116SELECT *
分分快三计划 117FROM msdb.dbo.MSdatatype_mappings
分分快三计划 118
分分快三计划 119SELECT *
分分快三计划 120FROM msdb.dbo.sysdatatypemappings

前提:

小编邮箱:huzzz@163.com

固然告诉成功,那么我们的数码就早已写入到Oracle中了。用

2.配备Powerdesigner与数据源的总是
Powerdesigner->数据库->配置连接->客户dsn(或连串dsn)->选取、增加您的数据源
3.连接
Powerdesigner->数据库->连接->设置好您刚刚建设架构的dsn分明。
OK,设置好连接后大家就足以将pdm生成sql语句了。
4.数据库生成
Powerdesigner->数据库->生成数据库->配置好(默许就足以卡塔尔后选拔明确就好了。
得到sql脚本语句,我们都明白应该怎么样做了吗,放到sql查询分析器里实践呢。

有的时候候出于项目花费的内需,必得将SQLServer二零零五中的有个别表同步到Oracle数据库中,由别的任何系统来读取那一个多少。分化数据库类型之间的数额同步大家能够利用链接服务器和SQLAgent来兑现。假若大家那边(SQLServer2007卡塔 尔(阿拉伯语:قطر‎有贰个契约管理连串,此中有表contract 和contract_project是亟需一齐到一个MIS系统中的(Oracle9i卡塔尔那么,大家能够遵守以下几步达成数据库的一路。
1.在Oracle中确立相应的contract 和 contract_project表,须要联合哪些字段我们就建那二个字段到Oracle表中。
这里须求小心的是Oracle的数据类型和SQLServer的数据类型是不均等的,那么他们中间是怎么着的涉及拉?大家得以在SQLServer下运营:

4,采取鲜明后,该数据源构建成功,能够双击该数据源名称举行连接测量试验,如下图所示

来查看SQLServer和任何数据库系统的数据类型对应关系。首个SQL语句是看SQL转Oracle的门类对应,而第三个表则更详实得显得了各类数据库系统的品种对应。根据第3个表和我们的SQLServer中的字段类型大家就能够创设好Oracle表了。

二,在Powerdesigner中逆向生成

分分快三计划 121DELETE FROM MIS..MIS.CONTRACT_PROJECT
分分快三计划 122--清空Oracle表中的数据
分分快三计划 123INSERT into MIS..MIS.CONTRACT_PROJECT--将SQLServer中的数据写到Oracle中
分分快三计划 124SELECT contract_id,project_code,actual_money
分分快三计划 125FROM contract_project
分分快三计划 126

在顾客的none中精选数据库顾客,同时可选要导出的表,最终点击明显,假设不可能健康生成脚本提醒模型错误,则在上图中的options大校check modle 的选项去掉,点击显明,生成sql脚本,

3、 看见由脚本自动生成相关的PDM如下所示:

      1,采取database--->generate database弹出如下窗口

3,点击显著后,突显此数据库中具有表、视图、客户(那么些选项一下该数据库的客商)。依据须求选拔后,调换来pdm。图示如下

    导好的模型,当然是用来校订和导出建库脚本的,操作方法如下

三,利用脚本生成模型

慎选Database->configure connections,转到system dsn标签,点击Add开关,选数据库类型DB2,点击完结。彰显如下:输入DataSource Name“PDMTest”;输入ServerName“Database”, 配置落成。如下所示:

当时生成的脚本不要发急去用,因为大概是不平时,用记事本或任何工具张开这一个剧本,你会发觉在所属名上相当于s2ms上都会加上""号,用Ctrl H,将具备"替换为空,就马到成功了!

        1,确认要转换模型的数据库是风靡的,而且能够运用

        1, 展开系统ODBC数据源,地点“调整面板--管理工科具--数据源(ODBC卡塔 尔(英语:State of Qatar)

2、 依然创制叁个pdm,选拔Database--->Reverse Engineer Database,选取Using script files。

转发小说:怎样用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现存的数据库生成PDM)
pdm做好后,最后是要将其转会为数据库实体的。
1.料定当前Powerdesigner设置的dbms是还是不是科学,就是不是是大家要转移的数据库类型,小编在此运用的是sqlserver二〇〇三:
Powerdesigner->数据库->校正当前dbms,接纳你的数据库类型。

一,建立ODBC数据源

3,点击达成,弹出数据源名称(自定卡塔 尔(阿拉伯语:قطر‎,和抉择你要一连的数据库,如下图所示

         在遗失数据模型也许数据库模型同现存的数据库不相符,能够通过该办法生成使用中数据库的模子

总结:PowerDesign 能够运用三种方法打开逆向工程

1、 数据库SQL脚本文件crebas.sql。下为脚本实例:
/*==============================================================*/
/* Database name: PhysicalDataModel_1 */
/* DBMS name: ORACLE Version 9i */
/* Created on: 2003-07-13 10:49:08 */
/*==============================================================*/
/*==============================================================*/
/* Table: "class" */
/*==============================================================*/
create table "class" (
"classID" NUMBER(2) not null,
"className" VARCHAR2(24),
constraint PK_CLASS primary key ("classID")
)
/
/*==============================================================*/
/* Table: "student" */
/*==============================================================*/
create table "student" (
"studentID" NUMBER(10) not null,
"studentName" VARCHAR2(4),
"classID" NUMBER(2),
constraint PK_如何将SQLServer2005中的数据同步到Oracle中【分分快三计划】。STUDENT primary key ("studentID")
)
/
alter table "student"
add constraint FK_STUDENT_REFERENCE_CLASS foreign key ("classID")
references "class" ("classID")
/

在数码建立模型进度中,大家创造概念数据模型,通过正向工程改动物理数据模型,生成数据库建库脚本,最终将物理数据模型生成关周到据库,以后反过来,通过逆向工程将关周密据库,生成物理数据模型。
优点:

四,生成模型后要导出数据库建库脚本

5,至此数据源建设构造完结,当然那一个也能够不用在这里地建构,在powerdesigner里也得以建构,建立艺术为

      1,张开Powerdesigner工具,创设二个PDM文件,接纳与之合作的数据库类型“ibm db2 udb 8.x common server”。创立方法为:右键点击左左边板中的WorkSpace---->new------>physical data nodel ,在DBMS中采纳你要的数据类型,接纳好后点击显著,则新创设了二个专业空间。

4,接收好后,点击OK,则变化模型。

Powerdesigner逆向工程从现存数据库生成PDM

        2,安装Powerdesigner软件

二、 通过SQL脚本逆向工程生成PDM

      2,选用Database菜单下的Reverse Engineer Database,弹出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源“s2ms”,如下图所示:

        2,选拔系统DSN,点击加多开关,会弹出如下分界面,接收与数据库相相称的驱动程序

         还原回的模子中,可能会未有普通话注释,未有表外键对应提到(字段还会有,索引关系没了卡塔尔国

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 MSSQL SQL开发