1、表变量的使用
sql的函数返回值如果是多个的时候,我们就需要用表变量来实现了,具体的语句如下:
Create Function dbo.mapping_get_street1_split
(
@street1 varchar(200)
)
returns @record table (street_num varchar(50),prefix varchar(50),street varchar(50),street_type varchar(50),suffix varchar(50))
as
Begin
Declare @street_num varchar(50);
Declare @prefix varchar(50);
Declare @street varchar(50);
Declare @street_type varchar(50);
Declare @suffix varchar(50);
--*** business logic
insert into @record(street_num,prefix,street,street_type,suffix) values(@street_num,@prefix,@street,@street_type,@suffix) ;
Return ;
End
调用的时候方式有点不一样,select * from dbo.mapping_get_street1_split('330 e mac lane')
返回结果是这样的:
还有就是如果刚开始创建的function返回类型是其他类型的,如果Alter本函数的时候可能会提示:Cannot perform alter on 'dbo.ObjectName' because it is an incompatible object type,遇到这样的问题需要drop掉当前的function然后重新Create就可以了。