MSSQL gen model nvarchar 字段类型有问题
Closed this issue · 1 comments
tky753 commented
SELECT NAME,XTYPE FROM systypes
WHERE NAME IN ('nvarchar', 'sysname')
ORDER BY XTYPE
以上sql查询,可以看到
两者 XTYPE 都是231
这就导致
github.com\gogf\gf@v1.13.0\database\gdb\gdb_driver_mssql.go
这里的语句
SELECT c.name as FIELD, CASE t.name
WHEN 'numeric' THEN t.name + '(' + convert(varchar(20),c.xprec) + ',' + convert(varchar(20),c.xscale) + ')'
WHEN 'char' THEN t.name + '(' + convert(varchar(20),c.length)+ ')'
WHEN 'varchar' THEN t.name + '(' + convert(varchar(20),c.length)+ ')'
ELSE t.name + '(' + convert(varchar(20),c.length)+ ')' END as TYPE
FROM systypes t,syscolumns c WHERE t.xtype=c.xtype -- 一个字段名可能对应多个类型
AND c.id = (SELECT id FROM sysobjects WHERE name='表名')
ORDER BY c.colid
然后后面就会出现index错位的问题
测试数据库:
sql2017
sql2008
wenzi1 commented
看了下在v1.13.2版本中已经修复了这个问题了, systypes中的关联字段由xtype改为了xusertype就没有问题了