create function p
returns varchar(11)
as
begin
declare @str varchar(50)
set @str='' label:
begin
while (len(@str)<=8)
begin
select @str=@str+[rand]
from dbo.[rand]
end set @str=left(@str,8)
if exists(select * from dbo.[tel number] with(xlock,paglock) where [tel]=@str)
goto label return @str
end
end
报错:服务器: 消息 170,级别 15,状态 1,过程 p,行 2
第 2 行: 'returns' 附近有语法错误。
服务器: 消息 178,级别 15,状态 1,过程 p,行 22
在此上下文中不能使用带有返回值的 RETURN 语句。请问高手 这是为什么?如何修改?
@str varchar(50)
)
returns varchar(11)
as
begin
set @str='' label:
begin
while (len(@str)<=8)
begin
select @str=@str+[rand]
from dbo.[rand]
end set @str=left(@str,8)
if exists(select * from dbo.[tel number] with(xlock,paglock) where [tel]=@str)
goto label
end
return @str
end不知道用途,只改语法。
as
select [rand]=stuff(rand(),1,2,'')
作用是:连上这个视图,求无重复任意号码