请问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 语句。 展开
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 语句。 展开
展开全部
--加几个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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询