请问sql server如何才能使用自定义函数

useSTmodelcreatefunctiongetnum(@nint)RETURNSintasbegindeclare@idintselect@id=IDfromji... use STmodel
create function getnum(@n int)
RETURNS int
as
begin
declare @id int
select @id = ID from jiagebianhua where id = @n
return @id
end
declare @i int
set @i=1
while @i<30
begin
select dbo.getnum(@i)
set @i=@i+1
end
这是我按网上资料写的语句,函数太长,如果直接写进去不是很方便,因此打算用自定义函数,但是不太会用,因此求救各位高手
报错是
消息 111,级别 15,状态 1,第 2 行
'CREATE FUNCTION' 必须是查询批次中的第一个语句。
消息 137,级别 15,状态 2,第 7 行
必须声明标量变量 "@n"。
消息 178,级别 15,状态 1,第 8 行
在此上下文中不能使用带有返回值的 RETURN 语句。
展开
 我来答
zxchan1992
推荐于2016-07-23 · TA获得超过278个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:230万
展开全部
--加几个Go就可以了

use STmodel
go

create function getnum(@n int)
RETURNS int
as
begin
    declare @id int
    select @id = ID from jiagebianhua where id = @n
    return @id
end
go

declare @i int
set @i=1
while @i<30
begin
    select dbo.getnum(@i)
    set @i=@i+1
end
追问
那在自定义函数中能自己创建表吗
create table #paixu(ID int IDENTITY (1,1) PRIMARY KEY , jgzhishu float)
为什么放自定义函数中会报错
追答
--不能创建临时表,可以定义表变量,定义,插入数据,查询数据
Declare @paixu Table(ID int IDENTITY (1,1) PRIMARY KEY , jgzhishu float)
insert into @paixu(jgzhishu) values(1)
select * from @paixu
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式