`

SQL Server通过系统信息表获取表中字段信息的方法

阅读更多
获取表中各字段信息:
select * from syscolumns where id=object_id('表名')

获取表中主键的方法:
select * from sysobjects where xtype ='pk'
外键同理

举例:查询表'cdt_1x_basic'的字段信息(包括主键信息)
select a.*,
case b.IsPK when 1 then 1 else 0 end as IsPK
from
(
select * from syscolumns where id=object_id('dbo.cdt_1x_basic')
)a left join
(
SELECT TABLE_NAME,COLUMN_NAME,1 as IsPK FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE TABLE_NAME='cdt_1x_basic'    --这里千万不能加前缀dbo.
)b on a.name=b.COLUMN_NAME

附1,系统表syscolumns的各字段及信息定义:
列名    数据类型             描述
name sysname 列名或过程参数的名称。
id int 该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtype tinyint systypes 中的物理存储类型。
typestat tinyint 仅限内部使用。
xusertype smallint 扩展的用户定义数据类型 ID。
length smallint systypes 中的最大物理存储长度。
xprec tinyint 仅限内部使用。
xscale tinyint 仅限内部使用。
colid smallint 列或参数 ID。
xoffset smallint 仅限内部使用。
bitpos tinyint 仅限内部使用。
reserved tinyint 仅限内部使用。
colstat smallint 仅限内部使用。
cdefault int 该列的默认值 ID。
domain int 该列的规则或 CHECK 约束 ID。
number smallint 过程分组时(0 表示非过程项)的子过程号。
colorder smallint 仅限内部使用。
autoval varbinary(255) 仅限内部使用。
offset smallint 该列所在行的偏移量;如果为负,表示可变长度行。
status tinyint 用于描述列或参数属性的位图:

0x08 = 列允许空值。
0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。
0x40 = 参数为 OUTPUT 参数。
0x80 = 列为标识列。

type tinyint systypes 中的物理存储类型。
usertype smallint systypes 中的用户定义数据类型 ID。
printfmt varchar(255) 仅限内部使用。
prec smallint 该列的精度级别。
scale int 该列的小数位数。
iscomputed int 表示是否已计算该列的标志:

0 = 未计算。
1 = 已计算。

isoutparam int 表示该过程参数是否是输出参数:

1 = 真。
0 = 假。

isnullable int 表示该列是否允许空值:

1 = 真。
0 = 假。


附2,表syscolumns中xtype的数据类型对应说明
xtype 类型
34 image
35 text
36 uniqueidentifier
48 tinyint
52 smallint
56 int
58 smalldatetime
59 real
60 money
61 datetime
62 float
98 sql_variant
99 ntext
104 bit
106 decimal
108 numeric
122 smallmoney
127 bigint
165 varbinary
167 varchar
173 binary
175 char
189 timestamp
231 sysname
231 nvarchar
239 nchar
分享到:
评论

相关推荐

    利用SQLServer系统表或视图猜解字段

    本实验的目的是通过利用 SQLServer 系统表或视图来猜解字段,获取数据库中的敏感信息。在本实验中,我们将使用 SQLServer 的系统表和视图来猜解字段,并介绍猜解字段的方法和步骤。 一、 项目描述 猜解字段的方法...

    sqlserver 导出表及字段说明脚本.rar

    这个压缩包"sqlserver 导出表及字段说明脚本.rar"包含了一个名为"sqlserver 导出表及字段说明脚本.sql"的文件,这通常是一个用于生成SQL语句的脚本,用于描述数据库中的表结构以及各字段的详细信息。以下是对这个...

    导出SQLSERVER表及字段说明.

    可以导出SQLSERVER表及字段说明.

    C#更新SQLServer中TimeStamp字段(时间戳)的方法

    在C#编程中,SQL Server的时间戳(TimeStamp)字段是一个特殊的数据类型,它与我们通常理解的日期时间无关,而是用来记录数据行的版本或更改信息。本文将深入探讨如何在C#中读取和更新SQL Server中的Timestamp字段。...

    SQL Server连接字段的方法

    通过本文的介绍,我们可以了解到在SQL Server中连接字段的具体方法,无论是对于字符类型的字段还是整数类型的字段,都有相应的解决方案。此外,文章还介绍了SQL Server中的一些常用字符串函数,这些函数可以进一步...

    sqlserver 获取表名字段信息

    SQL Server 获取表名字段信息 SQL Server 是一个功能强大的关系数据库管理系统,提供了...通过使用这些系统视图,可以快速获取表名字段信息、字段列表和存储过程参数列表等信息,从而提高开发效率和数据库管理效率。

    sqlserver自动增长字段设置方法.rar

    在SQL Server数据库管理系统中,自动增长(Identity)字段是一个非常重要的特性,主要用于为表中的记录生成唯一的标识符,通常作为主键使用。本教程将详细解释如何在SQL Server中设置和管理自动增长字段。 首先,...

    sqlserver2005 自带的工具对 表的备注 和 字段的备注说明维护起来非常麻烦,而且不方便显示表或字段的备注信息,而一般开发人员很看重表和字段的备注。

    sqlserver2005 自带的工具对 表的备注 和 字段的备注说明维护起来非常麻烦,而且不方便显示表或字段的备注信息,而一般开发人员很看重表和字段的备注。 为此,我作了一个 sqlserver2005 的小工具,特点: 1.能够对...

    SQL Server 2000系统表地图.rar_sql_sql server_sql server 2000_多变量

    压缩包中的"SQL Server 2000系统表地图.chm"很可能是一个帮助文件,它详细地解释了每个系统表的字段含义和用途。通常,这种文档会包含如何查询这些表以获取特定信息的例子,以及如何使用这些信息来解决实际问题。...

    SqlServer表结构转oracle表结构

    3. **注释迁移**:在SQL Server中的表注释和字段注释,通常存储在系统视图中。C#代码需要查询这些视图获取注释信息,并在Oracle中使用`COMMENT ON TABLE`和`COMMENT ON COLUMN`语句添加注释。 4. **界面操作**:...

    Sql server 获取表字段属性信息,注释信息

    从Sql server 2008获取表字段属性信息,注释信息 。注意,字段说明除非有备注才显示,如果没有的的情况下显示空白是正常的。

    SQL SERVE根据值查找所在的表和字段

    通过访问系统表`sys.columns`和`sys.objects`,我们可以获取到所有表的信息以及它们的列信息。然后,利用这些信息构造动态SQL语句,执行这些语句就可以找到指定值出现的位置。 #### 三、实现步骤 1. **定义变量**:...

    sql server 系统表 字段介绍等

    SQL Server是一款广泛使用的数据库管理系统,其内部包含了众多系统表,这些表存储了关于数据库实例、数据库对象、用户、权限等核心信息。理解这些系统表及其字段对于数据库管理员来说至关重要,因为它们提供了深入...

    C# 开发SQLSERVER数据库自动建表

    标题“C# 开发SQLSERVER数据库自动建表”表明我们将讨论一个使用C#开发的程序,该程序可以自动化创建SQL Server数据库中的表结构。这个功能对于数据导入、系统初始化或简化数据库管理流程非常有用。 描述中提到,该...

    Navicat客户端sqlserver表结构转到mysql数据库中操作文档

    本操作文档将详细介绍如何使用Navicat客户端工具将SQL Server的表结构转换到MySQL数据库中。Navicat是一款强大的数据库管理工具,支持多种数据库系统,包括SQL Server和MySQL,使得数据迁移变得简单而高效。 首先,...

    SqlServer查看表结构

    本篇文章将深入解析“SqlServer查看表结构”的方法,以及如何利用SQL语句来获取详细的表结构信息,这对于数据库管理员(DBA)、数据分析师、软件开发者等专业人士来说尤为关键。 ### SQL Server查看表结构的重要性 ...

    C#获得SQLServer服务器名、数据库名、表名、以及字段名的方法归类.pdf

    C# 获取 SQL Server 服务器名、数据库名、表名、以及字段名的方法归类 ...本文档提供了获取 SQL Server 服务器名、数据库名、表名、以及字段名的方法,帮助开发者快速获取 SQL Server 中的相关信息。

    sqlserver系统表及其说明

    SQL Server 系统表详解 SQL Server 系统表是 SQL Server 数据库中的一组特殊的表,它们存储了...本文档只是对 SQL Server 系统表的简单介绍,更多的信息可以通过 Microsoft SQL Server 的官方文档和其他资源获取。

    VFP通用字段中的信息导入SQL Server的实现方法.pdf

    在本篇文章中,介绍了将Visual FoxPro(VFP)数据库中的通用(通用字段)信息导入到SQL Server数据库的实现方法,这在数据库升级和数据迁移过程中是一个非常关键的环节。 首先,我们需要了解Visual FoxPro中通用...

    Oracle|Sqlserver|MySql数据库表结构一键生成工具

    "Oracle|Sqlserver|MySql数据库表结构一键生成工具" 提供了一种高效的方法来自动化这个过程,大大减轻了手动编写文档的工作量。这款工具能够支持三种主流的关系型数据库管理系统:Oracle、SQL Server和MySQL。 ...

Global site tag (gtag.js) - Google Analytics