SqlServer转mysql 字段注释sql脚本

SqlServer转mysql 字段注释sql脚本,第1张

SELECT 'alter table ' + LOWER(d.name) + ' modify column `' + a.name + '` ' + b.name

+ '(' + RTRIM(CONVERT(char, COLUMNPROPERTY(a.id,a.name,'PRECISION')) )  + ') comment ''' + RTRIM(REPLACE(CONVERT(char, g.value), '''', '')) + ''''

FROM syscolumns a

left join systypes b on a.xtype=b.xusertype

inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'

left join sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id

where b.name is not null

AND g.VALUE is not null

order by a.id,a.colorder

问题: 1、SqlServer 的image类型需要转为mysql的Blob类型

BLOB类型,用于存储二进制数据。 

MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,

最大存储分别为:

TinyBlob 最大 255

Blob 最大 65K

MediumBlob 最大 16M

LongBlob 最大 4G;

mmsql的image可以存储图片;mysql的blob可以存储图片、文档等,功能更加强大。

2、datetime(23) -> datetime(0)

mysql 服务器支持 # 到该行结束、-- 到该行结束 以及 /* 行中间或多个行 */ 的注释方格:

mysql>SELECT 1+1# 这个注释直到该行结束

mysql>SELECT 1+1-- 这个注释直到该行结束

mysql>SELECT 1 /* 这是一个在行中间的注释 */ + 1

mysql>SELECT 1+

/*

这是一个

多行注释的形式

*/

1

注意 -- (双长划) 注释风格要求在两个长划后至少有一个空格!

尽管服务器理解刚才描述的注释句法,但 MySQL 客户端的语法分析在 /* ... */ 注释方式上还有所限止:

单引号和双引号被用来标志一个被引用字符串的开始,即使是在一个注释中。如果注释中的引号没有另一个引号与之配对,那和语法分析程序就不会认为注释结束。如果你以交互式运行 mysql,你会产生困惑,因为提示符从 mysql>变为 '>或 ">。

一个分号被用于指出当前 SQL 语句的结束并且跟随它的任何东西表示下一行的开始。

不论你是以交互式运行 mysql 还是将命令放在一个文件中,然后以 mysql <some-file 告诉 mysql 读取它的输入,这个限制均存在。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8659300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存