CREATE PROC [dbo].[sp_help2]
@TableName VARCHAR(50) = NULL
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET XACT_ABORT ON    DECLARE @ErrCode nvarchar(100) = '', @ErrParam  nvarchar(1000) = ''
, @ProcName nvarchar(200) = OBJECT_NAME(@@PROCID)
   BEGIN TRY select 
b.name as ColumnName,
--CN_Name = (select Top(1) China from Dictionary dic where dic.Eng = b.name),
f.name AS Column_Type,
b.max_length as [Length],
CASE b.is_nullable WHEN 1 THEN 'Y' ELSE 'N' END as Nullable,
case when pktable.column_id is not null THEN 'O' ELSE '' END AS IS_PK,
case when d.object_id is not null THEN 'O' ELSE ''END AS IS_FK,
isnull(d.name,'') as RefTableName,
isnull(e.name,'') as RefColumnName
from sys.tables a
join sys.columns b on a.object_id = b.object_id
left join sys.foreign_key_columns c on a.object_id = c.parent_object_id
and b.column_id = c.parent_column_id
left join sys.tables d on c.referenced_object_id = d.object_id
left join sys.columns e on e.object_id = c.referenced_object_id
and e.column_id = c.referenced_column_id
join sys.types f on f.user_type_id = b.user_type_id and f.user_type_id = f.system_type_id
left join 
(
select b.object_id,c.column_id 
from sys.index_columns a
join sys.objects b on a.object_id = b.object_id
join sys.columns c on b.object_id = c.object_id 
and c.column_id = a.column_id
join sys.key_constraints d on a.object_id = d.parent_object_id
and d.unique_index_id = a.index_id
and d.type = 'PK'
) pktable on pktable.object_id = a.object_id
and pktable.column_id = b.column_id
where a.object_id = OBJECT_ID(@TableName)
order by b.column_id END TRY
BEGIN CATCH END CATCH

SqlServer查询表的所有字段属性及其是否是主外键的更多相关文章

  1. 通过SQL脚本来查询SQLServer 中主外键关系

    在SQLServer中主外键是什么,以及主外键如何创建,在这里就不说了,不懂的可以点击这里,这篇文章也是博客园的博友写的,我觉得总结的很好: 此篇文章主要介绍通过SQL脚本来查看Sqlserver中主 ...

  2. SQLserver创建与主外键的看法

    一个.背景 最初研究的相关内容数据库.仅仅是正式.从来没有练过,只能慢慢漂流,现在做的客房时,,非常多的知识需要使用视图,慢的实践. 视图:我理解的就是一张表.它把我们所须要的某个表或某几个表中的部分 ...

  3. Sqlserver查询表结构信息-字段说明、类型、长度等信息

    Sqlserver 中查询表结构信息-字段说明.类型.长度等信息综合语法. SELECT 表名 = d.name,--case when a.colorder=1 then d.name else ' ...

  4. MySQL的数据类型,MySQL增删改--添加主外键、添加属性、删除主外键、改表名、获取系统当前时间等

    ls /etc/rc.d/init.d/mysql56service mysql56 start ps aux |grep "mysql"|grep "socket=&q ...

  5. Oracle 创建数据表以及对数据表、字段、主外键、约束的操作

    选择主键的原则: 最少性 尽量选择使用单个键作为主键 稳定性 尽量选择数值更新少的列作为主键 1.创建数据表(CREATE TABLE) --创建数据表Student create table Stu ...

  6. sqlserver 查询表结构及字段说明

    SELECT [Table Name] = OBJECT_NAME(c.object_id), [Column Name] = c.name, [Description] = ex.value FRO ...

  7. SQLServer数据库,使用Alter修改表的主外键结构

    1.先创一张测试表,直接在创建时,设置UserId为主键 2.检查表有无主键约束 也可以使用SQL语句查询 SELECT name FROM sys.key_constraintsWHERE type ...

  8. Django之Models进阶操作(字段属性)

    字段属性详细介绍 一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列, ...

  9. 3、Entity Framework Core 3.1入门教程-设定字段属性

    本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...

  10. 基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作

    我们在使用EasyUI的时候,很多情况下需要使用到表格控件datagrid,这个控件控件非常强大,使用起来很简洁,但是我在使用中,发现对于一个表里面的外键字段进行转义,并显示引用表的一些名称的操作,却 ...

随机推荐

  1. NC20650 可爱の星空

    题目链接 题目 题目描述 "当你看向她时,有细碎星辰落入你的眼睛,真好."--小可爱 在一个繁星闪烁的夜晚,卿念和清宇一起躺在郊外的草地上,仰望星空. 星语心愿,他们,想把这片星空 ...

  2. layui切换select选项事件

    说明 我们经常遇到表单上面选择不同的下拉选项需要触发函数去完成一些业务逻辑,比如我这个地方根据所选商品查询它底下明细的数量,并展示. 效果演示 代码 <!--选择商品--> <div ...

  3. Retrofit 的基本用法

    一.添加依赖和网络权限 添加依赖 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup ...

  4. 【Azure 容器应用】在中国区Azure上创建的容器服务默认应用域名不全

    问题描述 在中国区Azure上,创建Container App服务,发现默认的应用程序URL只有前半段,并不是一个完整的域名.这是什么情况呢? 正常的Container App的URL格式为:< ...

  5. 【Azure 应用服务】VS2019发布应用到正在运行的App Service时失败问题的解决

    问题描述 在VS 2019中配置号App Service的Publish Profile后,发布应用出现错误.根据VS 2019中的输出消息可知有文件正在运行中,无法被替换,所以发布失败. 问题解决 ...

  6. 【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题

    问题描述 将 JS项目打包为静态文件后,通过 FTP 上传到 App Service For Linux 的 /home/site/wwwroot文件夹中.但打开App Service URL 后依旧 ...

  7. C#多线程(10):读写锁

    目录 ReaderWriterLockSlim ReaderWriterLockSlim 常用方法 订单系统示例 并发字典写示例 ReaderWriterLock 本篇的内容主要是介绍 ReaderW ...

  8. 如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养

    本文系 NebulaGraph Community Academic 技术文档工程师 Abby 的参会观感,讲述了她在中国技术传播大会分享的收获以及感悟. 据说,技术内容领域.传播领域的专家和决策者们 ...

  9. 【对比】Gemini:听说GPT-4你小子挺厉害

    前言 缘由 谷歌连放大招:Gemini Pro支持中文,Bard学会画画 事情起因: 一心只读圣贤书的狗哥,不经意间被新闻吸引.[谷歌最新人工智能模型Gemini Pro已在欧洲上市 将与ChatGP ...

  10. 1、eureka的注册流程

    客户端注册到服务端是通过http请求的 涉及到多级缓存 register注册表 源码精髓:多级缓存设计思想 在拉取注册表的时候: 首先从ReadOnlyCacheMap里查缓存的注册表. 若没有,就找 ...