Code Snippet
CREATE FUNCTION [dbo].[Ready]
(
-- Add the parameters for the function here
@.ProductPrm uniqueidentifier
)
RETURNS bit
AS
BEGIN
-- Declare the return variable here
DECLARE @.ProductNum int;
DECLARE @.Status bit;
-- Add the T-SQL statements to compute the return value here
SELECT @.ProductNum =COUNT(*)
FROM tblProduct
WHERE ProductID = @.ProductPrm
-- Return the result of the function
CASE WHEN @.ProductNum >= 1 THEN @.Status = 'False' ELSE @.Status = 'True' END
RETURN @.Status
END
Code Snippet
Msg 156, Level 15, State 1, Procedure RestoranHazirMi, Line 25
Incorrect syntax near the keyword 'CASE'.
Msg 102, Level 15, State 1, Procedure RestoranHazirMi, Line 29
Incorrect syntax near 'END'.
CASE WHEN is a statement level construction, not flow control
You could use
Code Snippet
CREATE FUNCTION [dbo].[Ready]
(
-- Add the parameters for the function here
@.ProductPrm uniqueidentifier
)
RETURNS bit
AS
BEGIN
-- Declare the return variable here
DECLARE @.ProductNum int;
DECLARE @.Status bit;
-- Add the T-SQL statements to compute the return value here
SELECT @.Status = CASE WHEN COUNT(*)>=1 THEN 'False' ELSE 'True' END
FROM tblProduct
WHERE ProductID = @.ProductPrm
RETURN @.Status
END
OR (IF/ELSE for flow control):
Code Snippet
CREATE FUNCTION [dbo].[Ready]
(
-- Add the parameters for the function here
@.ProductPrm uniqueidentifier
)
RETURNS bit
AS
BEGIN
-- Declare the return variable here
DECLARE @.ProductNum int;
DECLARE @.Status bit;
-- Add the T-SQL statements to compute the return value here
SELECT @.ProductNum =COUNT(*)
FROM tblProduct
WHERE ProductID = @.ProductPrm
-- Return the result of the function
IF (@.ProductNum >= 1)
SET @.Status = 'False'
ELSE
SET @.Status = 'True'
RETURN @.Status
END
|||thanks dude. I've learned it now.sql
No comments:
Post a Comment