刚写的存储过程,保存一下,^_^
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'
就可以得到你想要的主鍵字段的值