獲取表的列資訊,包括列名,列資料型別,主鍵列

2022-04-06 00:31:49 字數 1042 閱讀 2609

剛寫的儲存過程,儲存一下,^_^

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 wherename=''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'

就可以得到你想要的主鍵欄位的值

MySQL資料庫表名 列名 別名區分大小寫的問題

mysql資料庫表命名不能帶 可以帶下劃線 mysql在linux下資料庫名 表名 列名 別名大小寫規則是這樣的 1 資料庫名與表名是嚴格區分大小寫的 2 表的別名是嚴格區分大小寫的 3 列名與列的別名在所有的情況下均是忽略大小寫的 4 變數名也是嚴格區分大小寫的 mysql在windows下都不區...

MySQL資料庫表名 列名 別名區分大小寫的問題

mysql在linux下資料庫名 表名 列名 別名大小寫規則是這樣的 1 資料庫名與表名是嚴格區分大小寫的 2 表的別名是嚴格區分大小寫的 3 列名與列的別名在所有的情況下均是忽略大小寫的 4 變數名也是嚴格區分大小寫的 mysql在windows下都不區分大小寫。所以在不同作業系統中為了能使程式和...

MySQL資料庫表名 列名 別名區分大小寫的問題

mysql在linux下資料庫名 表名 列名 別名大小寫規則是這樣的 1 資料庫名與表名是嚴格區分大小寫的 2 表的別名是嚴格區分大小寫的 3 列名與列的別名在所有的情況下均是忽略大小寫的 4 變數名也是嚴格區分大小寫的 mysql在windows下都不區分大小寫。所以在不同作業系統中為了能使程式和...