@@ -229,7 +229,7 @@ public string GetColumnDefaultValue(DbColumnInfo col, bool isInsertValueSql)
229229 var defval = col . DefaultValue ? . Trim ( ) ;
230230 if ( string . IsNullOrEmpty ( defval ) ) return null ;
231231 var cstype = col . CsType . NullableTypeOrThis ( ) ;
232- if ( fsql . Ado . DataType == DataType . SqlServer || fsql . Ado . DataType == DataType . OdbcSqlServer )
232+ if ( fsql . Ado . DataType == DataType . SqlServer || fsql . Ado . DataType == DataType . OdbcSqlServer || fsql . Ado . DataType == DataType . CustomSqlServer )
233233 {
234234 if ( defval . StartsWith ( "((" ) && defval . EndsWith ( "))" ) ) defval = defval . Substring ( 2 , defval . Length - 4 ) ;
235235 else if ( defval . StartsWith ( "('" ) && defval . EndsWith ( "')" ) ) defval = defval . Substring ( 2 , defval . Length - 4 ) . Replace ( "''" , "'" ) ;
@@ -240,19 +240,28 @@ public string GetColumnDefaultValue(DbColumnInfo col, bool isInsertValueSql)
240240 if ( cstype == typeof ( string ) && string . Compare ( defval , "newid()" , true ) == 0 ) return $ "Guid.NewGuid().ToString().ToUpper()";
241241 if ( defval == "NULL" ) return null ;
242242 }
243- if ( ( cstype == typeof ( string ) && defval . StartsWith ( "'" ) && defval . EndsWith ( "'::character varying" ) ||
244- cstype == typeof ( Guid ) && defval . StartsWith ( "'" ) && defval . EndsWith ( "'::uuid" )
245- ) && ( fsql . Ado . DataType == DataType . PostgreSQL || fsql . Ado . DataType == DataType . OdbcPostgreSQL ||
246- fsql . Ado . DataType == DataType . KingbaseES ||
247- fsql . Ado . DataType == DataType . ShenTong ) )
248- {
249- defval = defval . Substring ( 1 , defval . LastIndexOf ( "'::" ) - 1 ) . Replace ( "''" , "'" ) ;
250- }
251- else if ( defval . StartsWith ( "'" ) && defval . EndsWith ( "'" ) )
243+ if ( ! isInsertValueSql && ( fsql . Ado . DataType == DataType . PostgreSQL || fsql . Ado . DataType == DataType . OdbcPostgreSQL || fsql . Ado . DataType == DataType . CustomPostgreSQL ||
244+ fsql . Ado . DataType == DataType . KingbaseES ||
245+ fsql . Ado . DataType == DataType . ShenTong ) )
252246 {
253- defval = defval . Substring ( 1 , defval . Length - 2 ) . Replace ( "''" , "'" ) ;
254- if ( fsql . Ado . DataType == DataType . MySql || fsql . Ado . DataType == DataType . OdbcMySql ) defval = defval . Replace ( "\\ \\ " , "\\ " ) ;
247+ switch ( defval )
248+ {
249+ case "uuid_generate_v4()" : return null ;
250+ }
255251 }
252+ if ( ( cstype == typeof ( string ) && defval . StartsWith ( "'" ) && defval . EndsWith ( "'::character varying" ) ||
253+ cstype == typeof ( Guid ) && defval . StartsWith ( "'" ) && defval . EndsWith ( "'::uuid" )
254+ ) && ( fsql . Ado . DataType == DataType . PostgreSQL || fsql . Ado . DataType == DataType . OdbcPostgreSQL || fsql . Ado . DataType == DataType . CustomPostgreSQL ||
255+ fsql . Ado . DataType == DataType . KingbaseES ||
256+ fsql . Ado . DataType == DataType . ShenTong ) )
257+ {
258+ defval = defval . Substring ( 1 , defval . LastIndexOf ( "'::" ) - 1 ) . Replace ( "''" , "'" ) ;
259+ }
260+ else if ( defval . StartsWith ( "'" ) && defval . EndsWith ( "'" ) )
261+ {
262+ defval = defval . Substring ( 1 , defval . Length - 2 ) . Replace ( "''" , "'" ) ;
263+ if ( fsql . Ado . DataType == DataType . MySql || fsql . Ado . DataType == DataType . OdbcMySql ) defval = defval . Replace ( "\\ \\ " , "\\ " ) ;
264+ }
256265 if ( cstype . IsNumberType ( ) && decimal . TryParse ( defval , out var trydec ) )
257266 {
258267 if ( isInsertValueSql ) return defval ;
0 commit comments