|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。存储历程做程序偶然候,要判别某列是不是属于操纵表,对照有些烦就写了一个存储历程。
createprocPr_getTableColumnLen
(
--传进的表名和列名
@inTableNamevarchar(20),
@inColumnNamevarchar(20),
--传进的标记变量和内容变量
@lenContentvarchar(200),
@flagvarchar(1)
)
as
--外部变量
declare
@rColumnNamevarchar(20),
@rColumnTypevarchar(10),
@rColumnByteint,
@rColumnNullStatusvarchar(1),
@rTempvarchar(10),
@rTempStrvarchar(100)
--start1
--假如存在判别存进数据是不是及格
--查找以后列,是不是存在
SELECT@rTemp=len(COLUMNPROPERTY(OBJECT_ID(@inTableName),@inColumnName,PRECISION))
if(@rTemp>0)
begin
select@rColumnName=a.namefromsyscolumnsa,systypesbwherea.id=object_id(@inTableName)anda.xtype=b.xtypeanda.name=@inColumnName
select@rColumnNullStatus=casea.isnullablewhen1thenYelseNendfromsyscolumnsa,systypesbwherea.id=object_id(publicnotice)anda.xtype=b.xtypeanda.name=@inColumnName
select@rColumnType=b.namefromsyscolumnsa,systypesbwherea.id=object_id(@inTableName)anda.xtype=b.xtypeanda.name=@inColumnName
select@rColumnByte=a.lengthfromsyscolumnsa,systypesbwherea.id=object_id(@inTableName)anda.xtype=b.xtypeanda.name=@inColumnName
--‘H’是中文判别
if(upper(@flag)=H)
begin
if(len(@lenContent)>@rColumnByte/2)
begin
set@rTempStr=(堕落提醒:列(+@rColumnName+)范例是+@rColumnType+可存储(+cast(@rColumnByte/2asvarchar(10))+)个汉字+能否为空+@rColumnNullStatus)
end
else
begin
set@rTempStr=Y
end
end
else
--其他默许为英文
begin
if(len(@lenContent)>@rColumnByte)
begin
set@rTempStr=(堕落提醒:列(+@rColumnName+)范例是(+@rColumnType+)可存储(+cast(@rColumnByteasvarchar(10))+)个字符+能否为空(+@rColumnNullStatus+))
end
else
begin
set@rTempStr=Y
end
end
end
else
begin
set@rTempStr=((+@inColumnName+)是有效列)
end
--start1End
--start2,用一时表失掉数据
createtable#temTable(resultvarchar(100))
insertinto#temTablevalues(@rTempStr)
select*from#temTable
--start2End
</p>大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧 |
|