Mega Code Archive

 
Categories / MSSQL / Transact SQL
 

Use return statement to return a table from a function

2> 3> CREATE TABLE Employees ( 4>      EmployeeID int NOT NULL , 5>      LastName nvarchar (20) NOT NULL , 6>      FirstName nvarchar (10) NOT NULL , 7>      Title nvarchar (30) NULL , 8>      TitleOfCourtesy nvarchar (25) NULL , 9>      BirthDate datetime NULL , 10>     HireDate datetime NULL , 11>     Address nvarchar (60) NULL , 12>     City nvarchar (15) NULL , 13>     Region nvarchar (15) NULL , 14>     PostalCode nvarchar (10) NULL , 15>     Country nvarchar (15) NULL , 16>     HomePhone nvarchar (24) NULL , 17>     Extension nvarchar (4) NULL , 18>     Photo image NULL , 19>     Notes ntext NULL , 20>     ReportsTo int NULL , 21>     PhotoPath nvarchar (255) NULL 22> 23> ) 24> GO 1> 2> 3> 4> CREATE TABLE RegionPlace 5>      (RegionID nvarchar (20) NOT NULL , 6>      TerritoryDescription nchar (50) NOT NULL , 7>         RegionID int NOT NULL 8> ) 9> GO 1> 2> Insert Into RegionPlace Values ('01581','Westboro',1) 3> Insert Into RegionPlace Values ('01730','Bedford',1) 4> Insert Into RegionPlace Values ('01833','Georgetow',1) 5> Insert Into RegionPlace Values ('95060','Santa Cruz',2) 6> Insert Into RegionPlace Values ('98004','Bellevue',2) 7> Insert Into RegionPlace Values ('98052','Redmond',2) 8> Insert Into RegionPlace Values ('98104','Seattle',2) 9> Go (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) 1> CREATE TABLE EmployeeRegion 2>      (EmployeeID int NOT NULL, 3>       RegionID nvarchar (20) NOT NULL 4> ) 5> GO 1> 2> Insert Into EmployeeRegion Values (1,'06897') 3> Insert Into EmployeeRegion Values (1,'19713') 4> Insert Into EmployeeRegion Values (9,'48084') 5> Insert Into EmployeeRegion Values (9,'48304') 6> Insert Into EmployeeRegion Values (9,'55113') 7> Insert Into EmployeeRegion Values (9,'55439') 8> GO (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) (1 rows affected) 1> 2> CREATE FUNCTION dbo.udf_EmpRegionPlaceTAB ( 3>     @EmployeeID int 4> )   RETURNS TABLE 5> AS RETURN 6> SELECT TOP 100 PERCENT WITH TIES 7>        et.RegionID 8>      , t.TerritoryDescription as [Territory] 9>      , t.RegionID 10>     FROM EmployeeRegion et 11>          LEFT OUTER JOIN RegionPlace t 12>              ON et.RegionID = t.RegionID 13>     WHERE et.EmployeeID = @EmployeeID 14>     ORDER BY t.TerritoryDescription 15> 16> GO 1> 2> DECLARE @EmpID int 3> SELECT @EmpID = EmployeeID 4>     FROM Employees 5>     WHERE FirstName = 'Andrew' and LastName = 'Fuller' 6> 7> SELECT * FROM udf_EmpRegionPlaceTAB(@EmpID) 8> GO RegionID          Territory                                          RegionID -------------------- -------------------------------------------------- ----------- (0 rows affected) 1> 2> 3> 4> drop FUNCTION dbo.udf_EmpRegionPlaceTAB; 5> GO 1> drop table EmployeeRegion; 2> drop table RegionPlace; 3> drop table Employees; 4> GO 1>