`

mysql 转sqlserver中遇到的坑

阅读更多
mysql 转sqlserver中遇到的坑
1.sqlserver2005无法用数据同步功能,只有sql2008才能用。需要先配置odbc驱动,再用navicat for server中的导入功能来---odbc---填写mysql用户名密码---导入数据。
注意其中的自增字段,到sqlserver中会变为非自增。
此时还需自己手动添加identity(1,1).
但是如果变为自增字段,再增加数据时,自增字段不能填写(填为空与不行,跟mysq1很不同)。
2。SQLServer,仅当使用了列列表并且IDENTITY_INSERT为ON时,才能为表xx中的标识列指定显式值。
set identity_insert 表名 ON

使用此命令把表的自增列设置为ON
然后使用 :
SELECT 3,0,'阿道夫',141,0,2,'133','09 24 2008  3:23PM','133','09 24 2008  3:23PM',0,'NULL'

的方式,插入数据(是使用Select的方式,不能用Insert into).
插入完成以后,再把列设置为OFF
set identity_insert [agent_ctm_shopgroup_tbl] OFF
但是我在写sql时用上以上的,还是没有效果。
3.http://www.th7.cn/db/mssql/201406/59721.shtml
4.mysql 时间用now(),sqlserver用getdate().
mysql 后一天now()+interval 1 day,后一月now()+interval 1 month.
sqlserver后一天getdate()+1,后一月
dateadd(month,1,getdate())
5.sqlserver针对java 不同的jdk对应不同的驱动jar包,错一点都不行,驱动名字2000与2005以后也区别很大。
6.分页查询时,因为2005开始,可以用row_number()函数,方便多了,速度也比原来的快。(没有order by 字段时用select 0)
select * from (select * ,row_number(order by (select 0 )) as rownum from test)t where t.rownum>=10 and t.rownum <=20
7.
[
Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。
产生这个问题是由于数据库设计的某个字段长度不够导致出问题。
解决办法即:
查找相应的字段,上传的插入的某个字段如果过长那么很有可能就是这个字段产生错误。
将这个字段长度改为varchar类型,长度加长即可!

8.sqlserver插入数据移表时,不能用
create table test select * from test1.
而要用
select * from test1 into test
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics