批量报错,kingbase sqlserver 兼容版中,UpdateColumns 报错 返回

SqlSugar 沟通中
2 381

image.png  


    public partial class Roles
    {
        public int RoleID { get; set; }
        public string RoleName { get; set; }
        public string RightID { get; set; }
        public string RoomID { get; set; }
        public string WardCode { get; set; }
    }


数据库版本:KingbaseES V009R004C016

兼容模式:sqlserver

select cast (pclass.oid as int4) as TableId,cast(ptables.tablename as varchar) as TableName,
                                pcolumn.column_name as DbColumnName,pcolumn.udt_name as DataType,
                                pcolumn.character_maximum_length as Length,
                                pcolumn.column_default as DefaultValue,
                                col_description(pclass.oid, pcolumn.ordinal_position) as ColumnDescription,
                                case when pkey.colname = pcolumn.column_name
                                then true else false end as IsPrimaryKey,
                                case when UPPER(pcolumn.column_default) like 'NEXTVAL%'
                                then true else false end as IsIdentity,
                                case when UPPER(pcolumn.is_nullable) = 'YES'
                                then true else false end as IsNullable
                                 from (select * from sys_tables where  UPPER(tablename) = UPPER('roles') and  lower(schemaname)='dbo') ptables inner join sys_class pclass
                                on ptables.tablename = pclass.relname inner join (SELECT *
                                FROM information_schema.columns where UPPER(table_schema)=UPPER('dbo')
                                ) pcolumn on pcolumn.table_name = ptables.tablename
                                left join (
                                        select  sys_class.relname,sys_attribute.attname as colname from
                                        sys_constraint  inner join sys_class
                                        on sys_constraint.conrelid = sys_class.oid
                                        inner join sys_attribute on sys_attribute.attrelid = sys_class.oid
                                        and  sys_attribute.attnum = sys_constraint.conkey[1]
                                        inner join sys_type on sys_type.oid = sys_attribute.atttypid
                                        where sys_constraint.contype='p'
                                ) pkey on pcolumn.table_name = pkey.relname
                                order by ptables.tablename

1764413296455.png


安装了这个后,1764405094267.png,单个 执行的可以了,


            var role=input.First();
            var query = _db.Updateable(role)
                        .UpdateColumns(it => new { it.RoleName, it.WardCode })
                        .WhereColumns(it => it.RoleID);
            await query.ExecuteCommandAsync();

批量 的还是不行,报这个错,sqlserver 正常


热忱回答2

  • fate sta fate sta VIP0
    2025/11/30

    databasemodel设置了吗。认真看一下文档:sqlserver模式用法

    0 回复
  • 牧马人 牧马人 VIP0
    2025/11/30

    @fate sta:可以了,谢谢,我没有设置这个 DatabaseModel= DbType.SqlServer

    0 回复