当前位置: 代码迷 >> Sql Server >> 把Oracle的SQL改成SqlServer
  详细解决方案

把Oracle的SQL改成SqlServer

热度:26   发布时间:2016-04-24 09:07:45.0
把Oracle的SQL改为SqlServer
本帖最后由 t123y456m 于 2015-05-05 10:32:39 编辑
1,Oracle中的BLOB和CLOB分别相当于SqlServer里面的哪个类型?能不能用一句简单而通俗的话解释一下,他们分别用来存什么数据的?

2,

create table WR_INT_TLP_M  (
   ANN_INT_REP_CD       CHAR(15)                        not null,
   WS_PP                decimal(6,2),
   LIFE_WUN             decimal(7,3),
   YR_WW                decimal(10,3),
   MAX_INT_Q            decimal(9,1),
   TS                   DATETIME                           default getdate() not null,
   NT                   VARCHAR(256),
   constraint PK_WR_INT_TLP_M primary key (ANN_INT_REP_CD)
);

comment on table WR_INT_TLP_M is
'年度取水计划生活取水申请信息表';

comment on column WR_INT_TLP_M.ANN_INT_REP_CD is
'年度取水计划审批报告书代码';
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年度取水计划审批报告书代码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WR_INT_TLP_M', @level2type=N'COLUMN',@level2name=N'ANN_INT_REP_CD'
GO


comment on column WR_INT_TLP_M.WS_PP is
'供水人口';

comment on column WR_INT_TLP_M.LIFE_WUN is
'生活用水定额';

comment on column WR_INT_TLP_M.YR_WW is
'年取水量';

comment on column WR_INT_TLP_M.MAX_INT_Q is
'最大取水流量';

comment on column WR_INT_TLP_M.TS is
'时间戳';

comment on column WR_INT_TLP_M.NT is
'备注';

这段代码是Oracle里面的创建表,并且给每个字段添加说明,我想要改为SqlServer的,难道要把每个comment on 改为

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年度取水计划审批报告书代码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WR_INT_TLP_M', @level2type=N'COLUMN',@level2name=N'ANN_INT_REP_CD'

么? 好几百个表啊,好几千个字段啊,有没有别的方法了?真是个大工程啊
------解决思路----------------------
1.BLOB 对应 Image, CLOB 对应 Text 或 NText
2.在 Oracle 中用下面的语句取的注释,再到 Excel 中用公式合成 SQL Server 的语句。
或者你也可以在 Oracle 中用字符串拼接直接合成 SQL Server 的语句
select table_name,column_name,comments from user_col_comments;
  相关解决方案