Не могу записать значение в переменную - PullRequest
0 голосов
/ 16 марта 2020

У меня есть функция, которая должна возвращать true, если в таблице есть строка со значениями, которые вводит пользователь.

Мне нужно записать значение в переменную, которую Ii возвращает, но я получил ошибка:

Неверный синтаксис рядом с'@ret'.

USE BDLab5;
GO
Create Function WasComplaint (@date date, @component varchar)
    Returns BIT
    Begin
        Declare @was int, @ret bit
        Select @was = ComponentCode from Complaints 
            Where ComplaintDate = @date AND 
            ComponentCode = (Select ComponentCode from Components Where ComponentName = @component)

        if (@was = 0)  
            @ret = 0
        else 
            @ret = 1 

        Return @ret
    End;

Я пробовал другой вариант синтаксиса if else, но это не помогает.

Ответы [ 2 ]

2 голосов
/ 16 марта 2020

Вам необходимо использовать SET при присвоении значения переменной.

USE BDLab5;
GO
Create Function WasComplaint (@date date, @component varchar)
    Returns BIT
    Begin
        Declare @was int, @ret bit
        Select @was = ComponentCode from Complaints 
            Where ComplaintDate = @date AND 
            ComponentCode = (Select ComponentCode from Components Where ComponentName = @component)

        if (@was = 0)  
            set @ret = 0
        else 
            set @ret = 1 

        Return @ret
    End;
2 голосов
/ 16 марта 2020

Поместите слово SET перед @ret, когда вы дадите ему значение

...