有人能帮我查询到表名、列名、列数据类型、是主行等吗?
对于E_Id、E_Name、E_City列,我的employee表的输出应该如下所示
TabName ColumnName数据类型是主列名数据类型是主列名数据类型
雇员- E_Id - int -S- E_Name - varchar -N- E_City - varchar
发布于 2014-02-07 04:06:34
您可以使用INFORMATION_SCHEMA系统视图获取任何表的此信息。以下是一个例子:
SELECT
c.TABLE_NAME,
c.COLUMN_NAME,
c.DATA_TYPE,
CASE WHEN tc.CONSTRAINT_NAME IS NOT NULL THEN 1 ELSE 0 END AS IsPrimary
FROM INFORMATION_SCHEMA.COLUMNS c
LEFT JOIN (
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
ON tc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME
AND tc.CONSTRAINT_SCHEMA = ccu.CONSTRAINT_SCHEMA
AND tc.CONSTRAINT_CATALOG = ccu.CONSTRAINT_CATALOG
AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
)
ON ccu.COLUMN_NAME = c.COLUMN_NAME
AND ccu.TABLE_NAME = c.TABLE_NAME
AND ccu.TABLE_SCHEMA = c.TABLE_SCHEMA
AND ccu.TABLE_CATALOG = c.TABLE_CATALOG
WHERE c.TABLE_NAME = 'Employee'
发布于 2014-02-07 03:51:22
您可以从以下内容获得表架构,
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'TABLENAME';
GO
(但输出格式不像您想要的那样)
https://stackoverflow.com/questions/21626932
复制相似问题