/**-- =============================================
Author: xft
CteateDate: 2013-10-11
Description:查看表的完整字段信息
Remark:
ModifyHistory:修改 添加了字段长度和标识等信息
**/-- =============================================
CREATE PROCEDURE [dbo].[sp_select_talberowName]
(@tablename varchar(max))

AS
BEGIN
SET NOCOUNT ON;
--declare @sql varchar(max)
--set @tablename=@tablename
----set @sql = 'select a.name,b.value
----from sys.syscolumns a left join sys.extended_properties b on a.id=b.major_id AND a.colid = b.minor_id
----Where a.ID=OBJECT_ID('''+@tablename+''')'

--set @sql='select e.name,c.[type],e.value from ((
--select a.name,b.value
--from sys.syscolumns a left join sys.extended_properties b on a.id=b.major_id AND a.colid = b.minor_id
--Where a.ID=OBJECT_ID('''+@tablename+''')) as e
--left join (
--select sys.columns.name,sys.types.name as [type] from sys.columns,sys.tables,sys.types
--where sys.tables.object_id=sys.columns.object_id and sys.types.user_type_id=sys.columns.user_type_id
--and sys.tables.name='''+@tablename+''') as c
--on e.name=c.name)'

--print @sql
--exec (@sql)
DECLARE @sql Nvarchar(2000)
SET @sql = 'SELECT
字段序号=a.column_id,
字段名=a.name,
类型=b.name,
长度=a.max_length,
小数位数=a.scale,
标识=case when a.is_identity = 1 THEN '+''''+'是'+''''+' else '+ ''''+''+'''' +' end,
主键=case when exists(SELECT 1 FROM sys.objects where type='+''''+'PK'+''''+' and name in (
SELECT name FROM sys.indexes WHERE index_id in(
SELECT index_id FROM sys.index_columns WHERE object_id = a.object_id AND index_column_id=a.column_id
))) then '+''''+'是'+''''+' else '+''''+''+''''+'end,
允许空=case when a.is_nullable=1 then '+''''+'是'+''''+' else '+''''+''+''''+' end,
默认值=isnull(e.text,'+''''+''+''''+'),
字段说明=isnull(g.[value],'+''''+''+''''+')
FROM sys.columns a
left join sys.types b on a.user_type_id=b.user_type_id
inner join sys.tables d on a.object_id=d.object_id
left join sys.syscomments e on a.default_object_id=e.id
left join sys.extended_properties g on a.object_id=g.major_id and a.column_id=g.minor_id
left join sys.extended_properties f on d.object_id=f.major_id and f.minor_id=0
WHERE d.name='+''''+@tablename+''''+'order by d.name,a.column_id'
EXEC sp_executesql @sql
END
GO

最新文章

  1. Xamarin笔记
  2. Ionic- Android 开发环境搭建
  3. 实现UniqueAttribute唯一性约束,sqlunique约束[转]
  4. 由IP和掩码计算广播地址
  5. 4.2 EF的CRUD控制器代码
  6. EmguCV学习——简单算法 差分与高斯
  7. IBInspectable的使用
  8. 如何打造一款五星级的 APP ?
  9. RR区间锁 不是唯一索引,即使区间内没值,也锁
  10. ASP.NET MVC 部分视图(转)
  11. SQL serve创建与调用存储过程
  12. shell:crontab
  13. Git基本原理-hash算法
  14. Adobe Photoshop安装
  15. AndroBench手机性能测试
  16. 深度学习之GRU网络
  17. memcache讲解和在.net中初使用
  18. docker部署nginx
  19. 实战框架ABP
  20. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第二课 (课堂笔记)

热门文章

  1. Oracle关联查询关于left/right join的那点事
  2. Light oj 1030 概率DP
  3. CCFileUtils::getFileData疑惑
  4. 【JAVA编码专题】深入分析 Java 中的中文编码问题
  5. js中constructor的作用
  6. python保留指定文件、删除目录其他文件的功能(1)
  7. Scala学习笔记--xml
  8. Block(一)基础-备
  9. C语言-cout<<"123"<<"45"<<endl;
  10. FATAL:NO bootable medium found!System halted.