| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1654 人关注过本帖
标题:[求助]用户自定函数!!
只看楼主 加入收藏
豆芽的天空
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:0
注 册:2007-3-15
收藏
得分:0 

可不可以帮我调一下呢?

2007-03-16 10:35
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER function makeField(@FldName nvarchar(10),@FldType nvarchar(10),
@FldLen nvarchar(10), @FldDec nvarchar(10))
returns nvarchar(50) as
begin
declare @result as nvarchar(50)
declare @FName nvarchar(10)
declare @FType nvarchar(10)
declare @FLen nvarchar(10)
declare @FDec nvarchar(10)
declare @error nvarchar(20)
set @FName=ltrim(rtrim(isnull(@FldName,'')))
set @FType=ltrim(rtrim(isnull(@FldType,'')))
set @FLen =ltrim(rtrim(isnull(@FldLen,'')))
set @FDec =ltrim(rtrim(isnull(@FldDec,'')))
if @FName='' RAISERROR('字段名为空',16, 1)
if @FType=''
begin
select @error='字段'+@FldName+'类型为空'
RAISERROR (@error,16, 1)
end
if @FType in ('varchar','char','nchar','nvarchar','decimal','numeric') and isnumeric(@FLen)<>1
begin
select @error='字段'+@FName+'没有指定数据的长度'
RAISERROR (@error,16, 1)
if cast(@FLen as int)<=0
begin
select @error='数据'+@FName+'没有长度'
RAISERROR (@error,16, 1)
end
end
if @FType in ('decimal','numeric') and isnumeric(@FLen)<>1
begin
select @error='字段'+@FName+'没有指定小数位数'
RAISERROR (@error,16, 1)
end
if cast(@FDec as int)<=0
begin
select @error='字段'+ @FName+'没有指定小数位数'
RAISERROR (@error,16, 1)
end
set @result='['+isnull(@FName,'')+'] ' + isnull(@FType,'') + ' '
set @result=@result+
case
when isnull(@FType,'') in('varchar','char','nchar','nvarchar') then
'(' + isnull(@FLen,'') + ')'
when @FldType in('decimal','numeric') then
'(' + isnull(@FLen,'') + ',' + isnull(@FDec,'') + ')'
else
''
end
return @result +','+ NCHAR(13)
End

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-03-16 11:00
豆芽的天空
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:0
注 册:2007-3-15
收藏
得分:0 
谢谢!我再试试看!!!!
2007-03-16 11:09
豆芽的天空
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:0
注 册:2007-3-15
收藏
得分:0 
不对哦!raiserror使用还是不对!
2007-03-16 11:28
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

是不是函数中不能用raiserror啊,你直接输出不就好了


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-03-16 11:45
新手菜鸟
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-3-16
收藏
得分:0 
去我那指教一下呀  棉花糖
2007-03-16 13:39
豆芽的天空
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:0
注 册:2007-3-15
收藏
得分:0 

还是不对呀!!!!天哪!!!!明天老总出差回来问我拿我怎么办呀?

2007-03-16 16:17
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

raiserror应该是不能在函数中用的,我自己写了个函数,用了raiserror也报错


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-03-16 16:22
豆芽的天空
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:0
注 册:2007-3-15
收藏
得分:0 

呵呵 原来不是raiserror不是不能用,只是我用错了。因为它是产生错误,而不能返加一个错误提示给它。我把它改为return就OK了。(QQ:115232615)

2007-03-17 11:12
快速回复:[求助]用户自定函数!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060125 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved