获取表的列信息,包括列名,列数据类型,主键列..

刚写的存储过程,保存一下,^_^


CREATE PROCEDURE dbo.Trans_GetTableColumnsInfo
@TableName varchar(50)
/*
根据传入的表名,获取对应表的列的信息,列名,列数据类型,数据类型长度,列是否是主键列
*/
AS
/*
获取该表的主键列的列名,保存在@ColName中
*/
declare @Sql nvarchar(200)
declare @ColName varchar(50)

set @Sql=N'select @ColName=name from syscolumns where exists(select id,indid from sysindexes where name=''PK_'+@TableName+''' and syscolumns.id=sysindexes.id and syscolumns.colid=sysindexes.indid)'
exec sp_executesql @Sql,N'@ColName varchar(50) out',@ColName out

/*
获取该表的列信息,列名,列数据类型,列数据类型长度,列是否是主键列
*/
select syscolumns.name as ColName,systypes.name as ColType,syscolumns.length as ColLength,case syscolumns.name when @ColName then 1 else 0 end as IsPkColumn
from syscolumns join sysobjects on syscolumns.id=sysobjects.id join systypes on systypes.xtype=syscolumns.xtype
where sysobjects.name=@TableName
GO

---------------------------------------
简单获取主键列名,可以这样:
sp_pkeys 'youtable'

就可以得到你想要的主鍵字段的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值