User-defined Function(2)
같은 이름의 함수를 여러번 생성할 때 추가하면 편한 코드
(1)
IF object_id('스키마이름.함수이름') is not null Drop function 스키마이름.함수이름
GO
(2)
if exists ( select * from sys.objects
where object_id = object_id('함수이름'))
drop function 함수이름
GO
> (1) 과 (2) 중에 골라서 쓰면 됩니다.
> 이 코드를 create function 전에 추가하면 이미 만들었던 함수를 삭제하고 다시 생성해서 오류가 나지 않습니다.
Scalar Function
예제 (1)
IF object_id('dbo.CalculateArea') is not null Drop Function dbo.CalculateArea
go
create function dbo.CalculateArea( @radius as float )
returns float
as
begin
return PI()*power(@radius,2)
end
go
select dbo.CalculateArea(2) as 'Area'
출력

예제 (2)
if object_id('dbo.getAge') is not null Drop Function dbo.getAge
go
create function dbo.getAge( @birthday as date )
returns int
as
begin
return Datediff(year, @birthday, sysdatetime())
end
go
select dbo.getAge('1998-12-05') as 'Age'
출력

예제 (3)
if exists ( select * from sys.objects
where object_id = object_id('dbo.rectangleArea'))
drop function dbo.rectangleArea
GO
create function dbo.rectangleArea( @Width int, @Height int)
returns int
as
begin
return ( @Width * @Height )
end
go
select dbo.rectangleArea(3,4) as 'Area'
출력

반응형
'백엔드 > SQL' 카테고리의 다른 글
| [SQL] User-defined Function (4) (0) | 2021.12.04 |
|---|---|
| [SQL] User-defined Function (3) (2) | 2021.12.04 |
| [SQL] User-Defined Functions (1) (2) | 2021.12.03 |
| [SQL] WHILE (1) | 2021.12.02 |
| [SQL] IF...ELSE (2) | 2021.12.02 |
댓글