您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp >> 正文

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

作者:作者:未…    信息学院来源:网络收集    点击数:    更新时间:2006-8-27 我要参与讨论

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

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

在google里搜索更多查找Table中的单个列长度并判断是否属于改表(存储过程)

Google
Web www.51ec.org
  • 上一篇信息学院:

  • 下一篇信息学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    我来说两句 对此文章发表了评论
      昵 称: *必填    ·注册用户·
      评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
    评 论
    内 容

     
    评论列表 (最新 评论仅限网友观点!)

    供求信息




    | 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明