I've made a SQL function. This is a simple function which gets IDs of given Gateway and Category objects by name:
USE [dev_ticketsystem]
GO
CREATE FUNCTION dbo.GetGatewayCategoryPair(@GatewayName varchar(100), @CategoryName varchar(100))
RETURNS @PairedTable TABLE
(
GatewayId uniqueidentifier,
CategoryId uniqueidentifier
)
AS
BEGIN
DECLARE @CategoryId uniqueidentifier;
DECLARE @GatewayId uniqueidentifier;
SELECT @CategoryId = [Id]
FROM [dev_ticketsystem].[dbo].[Category]
WHERE [Name] = @CategoryName;
SELECT @GatewayId = [Id]
FROM [dev_ticketsystem].[dbo].[Gateway]
WHERE [Name] = @GatewayName;
IF @GatewayId IS NOT NULL
BEGIN
IF @CategoryId IS NOT NULL
BEGIN
INSERT @PairedTable
SELECT @GatewayId, @CategoryId;
END;
END;
RETURN;
END;
GO
After executing this script it created the function, so I can see in MS SQL Management Studio.
But when I'm trying to call it with :
USE [dev_ticketsystem]
GO
INSERT INTO [dbo].[CategoryGateway]
([GatewayId]
,[CategoryId])
VALUES
(dbo.GetGatewayCategoryPair('GateName', 'CatName').GatewayId,
dbo.GetGatewayCategoryPair('GateName', 'CatName').CategoryId);
It throws exception :
Incorrect syntax near 'GetGatewayCategoryPair'.
How could this be fixed?