首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么用SQL语句判断一个字段是否主键或外键

2013-03-19 
如何用SQL语句判断一个字段是否主键或外键本帖最后由 skate6 于 2013-02-04 00:06:40 编辑最好是HQL语句,

如何用SQL语句判断一个字段是否主键或外键
本帖最后由 skate6 于 2013-02-04 00:06:40 编辑 最好是HQL语句,比如表user 字段有id(主键) code  name  organization_id(外键),表organization,有字段id code name  sql
[解决办法]

主键用 sys.key_constraints
外键用 sys.foreign_keys
 

[解决办法]
http://blog.csdn.net/dba_huangzj/article/details/8460174
你自己改一下
USE AdventureWorks
GO
SELECT  OBJECT_SCHEMA_NAME(T.[object_id], DB_ID()) AS [架构名] ,
        T.[name] AS [表名] ,
        AC.[name] AS [列名] ,
        TY.[name] AS [系统数据类型] ,
        TY.is_user_defined AS [是否用户自定义类型],--1 = 用户定义类型,0 = SQL Server 系统数据类型
        AC.[max_length] [最大长度],
        AC.[precision] [精确度],--如果列包含的是数值,则为该列的精度;否则为0
        AC.[scale] [数值范围],--如果列包含的是数值,则为列的小数位数;否则为0
        AC.[is_nullable] [是否允许为空],
        AC.[is_ansi_padded][是否使用ANSI_PADDING]--1 = 如果列为字符、二进制或变量类型,则该列使用ANSI_PADDING ON 行为
FROM    sys.[tables] AS T
        INNER JOIN sys.[all_columns] AC ON T.[object_id] = AC.[object_id]
        INNER JOIN sys.[types] TY ON AC.[system_type_id] = TY.[system_type_id]
                                     AND AC.[user_type_id] = TY.[user_type_id]
WHERE   T.[is_ms_shipped] = 0
ORDER BY T.[name] ,
        AC.[column_id]

[解决办法]
exec sp_pkeys '表名' --主键
exec sp_fkeys '表名' --外键

热点排行