Merge pull request #1087 from henq/SqlSugar5

神通数据库,获取表字段,表集合,视图方法修正。
This commit is contained in:
果糖网
2022-10-16 12:20:09 +08:00
committed by GitHub

View File

@@ -13,25 +13,34 @@ namespace SqlSugar
{ {
get get
{ {
return "SELECT datname FROM sys_database"; return "SELECT datname FROM sys_database ";
} }
} }
protected override string GetColumnInfosByTableNameSql protected override string GetColumnInfosByTableNameSql
{ {
get get
{ {
string sql = @"SELECT string sql = @" SELECT
COLUMN_NAME AS DbColumnName, A.COLUMN_NAME AS DbColumnName,
TABLE_NAME AS TableName, A.TABLE_NAME AS TableName,
DATA_TYPE AS DataType, A.DATA_TYPE AS DataType,
case when DATA_DEFAULT like 'NEXTVAL%' case when DATA_DEFAULT like 'NEXTVAL%' then true else false end as IsIdentity,
then true else false end as IsIdentity, case when A.NULLABLE = 'Y' then true else false end as IsNullable ,
case when NULLABLE = 'Y' A.DATA_LENGTH AS LENGTH,
then true else false end as IsNullable B.COMMENTS AS ColumnDescription,
FROM CASE WHEN K.COLUMN_NAME IS NULL THEN FALSE ELSE TRUE END AS IsPrimarykey,
INFO_SCHEM.ALL_TAB_COLUMNS WHERE upper(TABLE_NAME)=upper('{0}') DATA_SCALE AS DecimalDigits,
A.DATA_PRECISION AS SCALE,
"; A.DATA_DEFAULT as DefaultValue
FROM
INFO_SCHEM.ALL_TAB_COLUMNS A
LEFT JOIN INFO_SCHEM.SYS_CLASS T ON T.RELNAME=A.TABLE_NAME
LEFT JOIN INFO_SCHEM.ALL_COL_COMMENTS B ON A.TABLE_NAME=B.TABLE_NAME AND A.COLUMN_NAME=B.COLUMN_NAME
LEFT JOIN INFO_SCHEM.SYS_ATTRIBUTE C ON C.ATTNAME=A.COLUMN_NAME AND C.ATTRELID=T.OID
LEFT JOIN INFO_SCHEM.V_SYS_PRIMARY_KEYS K ON A.TABLE_NAME=K.TABLE_NAME AND K.COLUMN_NAME=A.COLUMN_NAME
WHERE upper(A.TABLE_NAME)=upper('{0}')
ORDER BY c.ATTNUM
";
return sql; return sql;
} }
} }
@@ -39,15 +48,10 @@ INFO_SCHEM.ALL_TAB_COLUMNS WHERE upper(TABLE_NAME)=upper('{0}')
{ {
get get
{ {
return @"select cast(relname as varchar(500)) as Name , //AND t.relnamespace=1 表空间限制。
'' AS Description return @" select cast(relname as varchar(500)) as Name , DESCRIPTION AS Description FROM sys_class t
from sys_class c LEFT JOIN sys_description d ON t.OID=d.OBJOID AND d.OBJSUBID=0
where relkind = 'r' WHERE t.relvbase>0 AND t.relkind = 'r' AND t.relnamespace=(SELECT OID FROM sys_namespace WHERE nspname =USER)
and relname not like 'SYS_%'
and relname not like 'V_SYS_%'
and relname not like 'sql_%'
and relname not like 'AQ$%'
AND relname NOT IN('LOGIN_FORBIDDEN_RULE','DBMS_LOCK_ALLOCATED','DUAL''_OBJ_BINLOG_SHOW_EVENTS_','USER_LOGIN_HISTORY','LOGIN_ALLOW_IPLIST')
order by relname"; order by relname";
} }
} }
@@ -55,16 +59,9 @@ INFO_SCHEM.ALL_TAB_COLUMNS WHERE upper(TABLE_NAME)=upper('{0}')
{ {
get get
{ {
return @"select cast(relname as varchar(500)) as Name , return @" select cast(relname as varchar(500)) as Name , DESCRIPTION AS Description FROM sys_class t
'' AS DESCRIPTION LEFT JOIN sys_description d ON t.OID=d.OBJOID AND d.OBJSUBID=0
from sys_class c WHERE t.relvbase>0 AND t.relkind = 'v' AND t.relnamespace=(SELECT OID FROM sys_namespace WHERE nspname =USER)
where relkind = 'v'
and relname not like 'SYS_%'
and relname not like 'V_SYS_%'
and relname not like 'sql_%'
and relname not like 'AQ$%'
AND relvbase=1
AND relname NOT IN('LOGIN_FORBIDDEN_RULE','DBMS_LOCK_ALLOCATED','DUAL''_OBJ_BINLOG_SHOW_EVENTS_','USER_LOGIN_HISTORY','LOGIN_ALLOW_IPLIST')
order by relname"; order by relname";
} }
} }