0

我需要从我的 ubuntu 机器连接到 sql server 2008,并且我需要分析我正在连接的数据库中的所有可用列(ER 图??),任何人都可以建议一个工具来做到这一点,尝试过 squirrel已经。

4

1 回答 1

1

我无法帮助您使用免费的 ubuntu 工具来生成 ER 图表,但是......

此 SQL 列出具有数据类型的列:

http://www.sqlservercentral.com/Forums/Topic1032279-2863-1.aspx#bm1034068

SELECT table_schema, table_name, column_name, data_type, character_maximum_length,
is_nullable, column_default, numeric_precision, numeric_scale
FROM information_schema.columns
ORDER BY table_schema, table_name, ordinal_position

此 SQL 列出所有外键:

http://www.mssqltips.com/sqlservertip/1151/identify-all-of-your-foreign-keys-in-a-sql-server-database/

SELECT C.TABLE_CATALOG [PKTABLE_QUALIFIER], 
   C.TABLE_SCHEMA [PKTABLE_OWNER], 
   C.TABLE_NAME [PKTABLE_NAME], 
   KCU.COLUMN_NAME [PKCOLUMN_NAME], 
   C2.TABLE_CATALOG [FKTABLE_QUALIFIER], 
   C2.TABLE_SCHEMA [FKTABLE_OWNER], 
   C2.TABLE_NAME [FKTABLE_NAME], 
   KCU2.COLUMN_NAME [FKCOLUMN_NAME], 
   RC.UPDATE_RULE, 
   RC.DELETE_RULE, 
   C.CONSTRAINT_NAME [FK_NAME], 
   C2.CONSTRAINT_NAME [PK_NAME], 
   CAST(7 AS SMALLINT) [DEFERRABILITY] 
FROM   INFORMATION_SCHEMA.TABLE_CONSTRAINTS C 
   INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU 
     ON C.CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA 
        AND C.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME 
   INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC 
     ON C.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA 
        AND C.CONSTRAINT_NAME = RC.CONSTRAINT_NAME 
   INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS C2 
     ON RC.UNIQUE_CONSTRAINT_SCHEMA = C2.CONSTRAINT_SCHEMA 
        AND RC.UNIQUE_CONSTRAINT_NAME = C2.CONSTRAINT_NAME 
   INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2 
     ON C2.CONSTRAINT_SCHEMA = KCU2.CONSTRAINT_SCHEMA 
        AND C2.CONSTRAINT_NAME = KCU2.CONSTRAINT_NAME 
        AND KCU.ORDINAL_POSITION = KCU2.ORDINAL_POSITION 
WHERE  C.CONSTRAINT_TYPE = 'FOREIGN KEY'
于 2013-09-25T03:01:47.130 回答