模拟实现sql server字段列显示的数据类型

模拟实现sql server字段列显示的数据类型

ID:36023184

大小:174.00 KB

页数:9页

时间:2019-04-29

模拟实现sql server字段列显示的数据类型_第1页
模拟实现sql server字段列显示的数据类型_第2页
模拟实现sql server字段列显示的数据类型_第3页
模拟实现sql server字段列显示的数据类型_第4页
模拟实现sql server字段列显示的数据类型_第5页
资源描述:

《模拟实现sql server字段列显示的数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、模拟实现SQLServer字段列显示的数据类型本文目录列表:1、SQLServer表设计视图中的数据类型列展示效果2、模拟实现类似的数据类型显示效果3、测试效果4、总结语5、参考清单列表 1、SQLServer表设计视图中的数据类型列展示效果 在SQLServer2012的表设计视图中可以看到如下图的效果:如上图所示红色矩形框圈住的数据类型列中展示的效果,特别针对用户定义数据类型也显示了其基本数据类型。 这种针对字段列显示的数据类型效果很直接,很容易看到其数据类类型是什么,甚至看能看到精度或小数位,最重要的是显示了用户定义数据类型的基本数据类型。有时候在数据库设计

2、中往往定义通用的用户定义数据类型,如身份证,手机号码,性别,名称等等通用的用户定义数据类型。 有时候将表字段列导出来保存doc、excel以及html,针对字段列的数据类型显示往往需要4个字段列来展示,如下图所示:上图所示的就不太很直观的看出该字段的数据类型的详细信息,特别该字段列的数据类型为用户定义的数据类型时,更无从看出来它的基本数据类型。 注意:在SQLServer中sysname数据定义数据类型默认是系统定义的,在表设计视图中找不到该该数据类型,只能通过DDL命令来定义属于sysname的字段列。 2、模拟实现类似的数据类型显示效果 为了将字段列显示的数据

3、类型展示的更有清晰简单,本人就模拟SQLServer表设计视图中的字段列的展示效果的实现功能。 实现一个标量函数,支持将基本数据类型大小写的功能,具体的T-SQL代码如下:IFOBJECT_ID(N'[dbo].[ufn_GetDisplayDataTypeName]','FN')ISNOTNULLBEGINDROPFUNCTION[dbo].[ufn_GetDisplayDataTypeName];ENDGO--==================================--功能:获取字段列显示的数据类型名称--说明:支持用户定义类型,可以运行于SQLS

4、erver2005+--创建:yyyy-MM-ddhh:mm-hh:mmXXX创建内容描述--修改:yyyy-MM-ddhh:mm-hh:mmXXX修改内容描述--==================================CREATEFUNCTION[dbo].[ufn_GetDisplayDataTypeName](@intUserTypeIDASINT--用户类型ID,@sntMaxLengthASSMALLINT--最大字节长度,@tntPrecisionASTINYINT--精度,@tntScaleASTINYINT--小数位,@bitIsUpp

5、erDisplayASBIT=0--是否大写显示(默认小写显示))RETURNSNVARCHAR(270)ASBEGINSET@bitIsUpperDisplay=ISNULL(@bitIsUpperDisplay,0);DECLARE@nvcDataTypeNameASNVARCHAR(128),@nvcBaseDataTypeNameASNVARCHAR(128),@nvcSuffixDisplayNameASNVARCHAR(14)SELECT@nvcDataTypeName=N'',@nvcBaseDataTypeName=N'',@nvcSuffixDi

6、splayName=N''SELECT@nvcDataTypeName=[name],@nvcBaseDataTypeName=(CASEWHEN(@nvcDataTypeName=N'sysname'OR[is_user_defined]=1)THENTYPE_NAME([system_type_id])ELSE@nvcDataTypeNameEND)FROM[sys].[types]WHERE[user_type_id]=@intUserTypeID;SET@nvcDataTypeName=(CASEWHEN@nvcDataTypeName

7、wang.net>@nvcBaseDataTypeNameTHEN@nvcDataTypeName+N':'ELSEN''END);SET@nvcBaseDataTypeName=CASE@bitIsUpperDisplayWHEN1THENUPPER(@nvcBaseDataTypeName)ELSE@nvcBaseDataTypeNameEND;SET@nvcSuffixDisplayName=(CASEWHEN@nvcBaseDataTypeName=N'char'THENQUOTENAME(RTRIM(CAST(@sntMaxLengthASVARCHAR

8、(4)))

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。