1、根据表名查询对象ID

SELECT OBJECT_ID('Production.Product')

结果:1429580131

不能作为输入参数:列名、约束名

能作为输入参数:表名

2、根据对象ID查询表名

SELECT OBJECT_NAME(1429580131)

结果:Product

一、syscolumns

1.根据表名查询表的所有列的名称

SELECT  name
FROM syscolumns
WHERE id = OBJECT_ID('Production.Product')

syscolumns 为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行。

syscolumns.id        列所属的表的对象ID、int型

syscolumns.name   列的名称、sysname型

2.根据表名、列名,查询列ID

SELECT  colid
FROM syscolumns
WHERE id = OBJECT_ID('Production.Product')
AND name = 'ProductNumber'

syscolumns.colid   列ID (列从1开始编号)、smallint型

syscolumns.name (似乎可以用字符串作为输入)

二、sysconstraints

包含的主要列:约束ID(constid),约束所属表的对象ID(id),约束所在列的列ID(colid)

三、sysobjects 

1、根据表名和列名查询列上的约束

SELECT  sysobjects.name ,sysobjects.xtype,
sysobjects.id
FROM sysobjects
JOIN sysconstraints ON sysobjects.id = sysconstraints.constid
WHERE sysobjects.parent_obj = OBJECT_ID('Production.Product')
AND sysconstraints.colid IN (
SELECT colid
FROM syscolumns
WHERE id = OBJECT_ID('Production.Product')
AND name = 'Weight' )

sysobjects.parent_obj   父对象的对象标识号。 例如,表ID(如果它是触发器或约束,父对象就是表ID)。

sysobjects.xtype:

C   = check约束

D   = 默认值或DEFAULT约束

F    = FOREIGN KEY约束

P    = 存储过程

PK  = PRIMARY KEY

UQ = UNIQUE

四、后续版本的 Microsoft SQL Server 将删除这些功能。使用最新的 SQL Server 系统视图来代替。

syscolumns、sysconstraints、sysobjects的更多相关文章

  1. SQL Server中 sysobjects、sysolumns、systypes

    1.sysobjects    系统对象表. 保存当前数据库的对象,如约束.默认值.日志.规则.存储过程等 在大多数情况下,对你最有用的两个列是Sysobjects.name和Sysobjects.x ...

  2. SQL2000系统表、存储过程、函数的功能介绍及应用

    转自:http://blog.csdn.net/zlp321002/article/details/480925 ----系统表------------------------------------ ...

  3. 刷新SQL Server所有视图、函数、存储过程

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  4. 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  5. SQL 查询所有表名、字段名、类型、长度、存储过程、视图

    -- 获得存储过程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id=cm.i ...

  6. sqlserver查询所有表名、字段名、类型、长度和存储过程、视图的创建语句

    -- 获得存储过程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id=cm.i ...

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

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

  8. 获取sqlserver数据库中所有库、表、字段名的方法

    获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...

  9. asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记

    很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...

随机推荐

  1. PowerDesigner概念模型的Notation设置

    原文:PowerDesigner概念模型的Notation设置 在进行数据库设计模型时,分为概念模型设计和物理模型设计两种,概念模型主要是反映真是 世界中的业务关系,也就是我们常用的实体关系图.物理模 ...

  2. C# Java间进行RSA加密解密交互(二)

    原文:C# Java间进行RSA加密解密交互(二) 接着前面一篇文章C# Java间进行RSA加密解密交互,继续探讨这个问题. 在前面,虽然已经实现了C# Java间进行RSA加密解密交互,但是还是与 ...

  3. HTTP会话原理解释与应用

    一.什么是会话 首先解释一下什么是会话.在计算机术语中,会话是指一个终端用户与交互系统进行通讯的过程,比如从输入账户密码进入操作系统到退出操作系统就是一个会话过程.会话较多用于网络上,TCP的三次握手 ...

  4. Android The content of the adapter has changed but ListView did not receive a notification

    The content of the adapter has changed but ListView did not receive a notification. Make sure the co ...

  5. maven项目配置Jetty服务器

    <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin ...

  6. Burnside引理和polay计数学习小记

    在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...

  7. $.toJSON的用法或把数组转换成json类型

    1. html页面全部代码 <html> <head>     <title></title> <script src="../../S ...

  8. ExtJs自学教程(1):一切从API开始

    题 记 该系列文章不侧重全方位的去介绍ExtJs的使用,只是侧重于解决ExtJs问题的思考方法.写的人不用长篇大论,学的人则能够自立更生.l  学习的人只要有一些CSS的javascript的基础知识 ...

  9. [原]用WebBrowser组件模拟人工运行搜索引擎自动点击搜索结果的实验

    本代码只是业余时间无聊写着试试,用WebBrowser组件模拟人工运行搜索引擎自动点击搜索结果的实验 这是网络中盛传的提高搜索引擎点击率的一种方式,当然属于作弊,不推荐各位使用.另外这种方式的性能不佳 ...

  10. git中手动删除的文件如何在git中删除

    在日常开发中,我们可能或手动删除(delete键删除的)一些文件,然而我们本来应该是用git rm fileName命令删除的,但是现在我们手动删除了,那么要如何在git里面讲那些手动删除的文件删除呢 ...