查找Table中的单个列长度并判断是否属于改表(存储过程)

存储过程

做程序有时候,要判断某列是否属于操作表,对比有些烦就写了一个存储过程。

create proc Pr_getTableColumnLen
(
--传入的表名和列名
@inTableName varchar(20),
@inColumnName varchar(20),

--传入的标志变量和内容变量
@lenContent varchar(200),
@flag varchar(1)
)

as

--内部变量
declare
@rColumnName varchar(20),
@rColumnType varchar(10),
@rColumnByte int,
@rColumnNullStatus varchar(1),
@rTemp varchar(10),
@rTempStr varchar(100)

--start1
--如果存在判断存入数据是否合格
--查找当前列,是否存在
SELECT @rTemp=len(COLUMNPROPERTY( OBJECT_ID(@inTableName),@inColumnName,'PRECISION'))
if(@rTemp > 0)
begin
select @rColumnName=a.name from syscolumns a,systypes b where a.id =object_id(@inTableName) and a.xtype = b.xtype and a.name=@inColumnName
select @rColumnNullStatus=case a.isnullable when 1 then 'Y' else 'N' end from syscolumns a,systypes b where a.id =object_id('publicnotice') and a.xtype = b.xtype and a.name=@inColumnName
select @rColumnType=b.name from syscolumns a,systypes b where a.id =object_id(@inTableName) and a.xtype = b.xtype and a.name=@inColumnName
select @rColumnByte=a.length from syscolumns a,systypes b where a.id =object_id(@inTableName) and a.xtype = b.xtype and a.name=@inColumnName
--‘H’是中文判断
if(upper(@flag) ='H')
begin
if(len(@lenContent) > @rColumnByte/2)
begin
set @rTempStr = ('出错提示:列('+ @rColumnName + ') 类型是 ' + @rColumnType + ' 可存储(' + cast(@rColumnByte/2 as varchar(10)) + ')个汉字' + ' 可否为空 ' + @rColumnNullStatus)
end
else
begin
set @rTempStr = 'Y'
end
end
else
--其他默认为英文
begin
if(len(@lenContent) > @rColumnByte)
begin
set @rTempStr = ('出错提示:列('+ @rColumnName + ') 类型是(' + @rColumnType + ') 可存储(' + cast(@rColumnByte as varchar(10)) + ')个字符' + ' 可否为空(' + @rColumnNullStatus + ')')
end
else
begin
set @rTempStr = 'Y'
end
end
end
else
begin
set @rTempStr =( '(' + @inColumnName + ') 是无效列')
end

--start1End

--start2,用临时表得到数据
create table #temTable (result varchar(100))
insert into #temTable values(@rTempStr)
select * from #temTable

--start2End

时间: 2024-10-29 22:32:24

查找Table中的单个列长度并判断是否属于改表(存储过程)的相关文章

JavaScript获取table中某一列的值的方法_javascript技巧

1.实现源码 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-eq

javascript-如何用js替换掉table中某一列的值?

问题描述 如何用js替换掉table中某一列的值? 解决方案 ID Name 1 a 2 c <script src="jquery-1.7.1.min.js"></script> <script> window.onload = function () { $("table").find(".name").html("b"); } </script> 你可以试试,我理解的你应该

前端开发-如何用JQuery移除table中的一列?

问题描述 如何用JQuery移除table中的一列? <html> <head> <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> </head> <body> <table id="thisTable"> <tr> <td>id</td&

急求从两张数据表中抽取个别列,查询后组合成一张新表,如何做?

问题描述 A表包含字段ABCDB表包含EFC表字段ABCDEF从winform上查询完A表和B表的数据之后,选择某条A和某条B点击按钮生成一条新的C表数据如何操作代码怎么样 解决方案 解决方案二:数据库可以直接做,也可以用linq解决方案三:可以写一个类C,包含ABCDEF属性,然后选中A表中的字段,给C的ABCD赋值,选中B表,赋值EF,然后增加到C表中~解决方案四:获取选择的A与B对象,拼接insertsql语句,inserttableC(A,B,C......)Values(A.A,A.B

javascript Table 中2个列(TD)的交换实现代码_javascript技巧

[a] [b] [c] [d] [e]

SQL Server表中添加新列并添加描述_MsSql

注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释) /********调用方法********** 作用: 添加列并添加列描述信息 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' ************

SQL Server表中添加新列并添加描述

注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释) /********调用方法********** 作用: 添加列并添加列描述信息 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' ************

dorado7 在原有的表中添加一列 点提交怎么表存到数据库中

问题描述 dorado7 在原有的表中添加一列 点提交怎么表存到数据库中 dorado7 在原有的表中添加一列"酒店含早餐" 点提交怎么表存到数据库中(新加了一列") <Dataset method=""getDatasHotelAndMealByReqId"" type=""Wrapper"" id=""dsEvecHotelAndMeal"" ob

html-Html 中的table问题 如何控制列的宽度

问题描述 Html 中的table问题 如何控制列的宽度 代码如下: table width = 950 ?tr ? ?td width = 450/td ? ?td width = 50/td ? ?td width = 450/td ?tr table 为什么起不到应有的效果,这种代码的结果是3列基本一样宽(那这样不是超过了table本身的宽度么)..如果把中=50的一行去掉,这里会有另外一个问题(我的本意是中间一列空出来,左右2列写内容.)我在第1列里首先放入一个图像 该图像宽450,放进