Некорректная синтаксическая ошибка sql - PullRequest
0 голосов
/ 06 июля 2018
CREATE PROC CreateOrUpdate
    @ID INT,
    @NRIC VARCHAR(50),
    @Name VARCHAR(50),
    @Description VARCHAR(50),
    @Location1 VARCHAR(50)
AS
BEGIN
    IF (@ID = 0)
    BEGIN
        INSERT INTO tblBlacklist (NRIC, Name, Description, createdatetime, Location1)
        VALUES (@NRIC, @Name, @Description, GETDATE(), @Location1)
    END
    ELSE
    BEGIN
        UPDATE tblBlacklist
        SET NRIC = @NRIC,
            Name = @Name,
            Description = @Description,
            createdatetime = GETDATE()
        WHERE ID = @ID 
          AND Location1 = @Location1
    END
END

/****** Object:  StoredProcedure [dbo].[ContactViewAll]    Script Date: 15- 
Apr-2017 7:39:13 AM ******/
CREATE PROC ViewAll
    @Location1 VARCHAR(50)
AS
BEGIN
    SELECT *
    FROM tblBlacklist
    WHERE Location1 = @Location1
END

Я не вижу ошибок в моей кодировке. Сообщение об ошибке

Сообщение 156, Уровень 15, Состояние 1, Процедура CreateOrUpdate, Строка 28 [Стартовая Строка 0]
Неверный синтаксис рядом с ключевым словом 'PROC'

Пожалуйста, помогите мне спасибо.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

попробуйте окружить ваши входные параметры в самой подходящей скобке ()

0 голосов
/ 06 июля 2018

Одним из предложений является добавление перехода между двумя операторами create и удаление системного комментария:

CREATE PROC CreateOrUpdate
@ID int,
@NRIC varchar(50),
@Name varchar(50),
@Description varchar(50),
@Location1 varchar(50)
AS
BEGIN
IF(@ID=0)
BEGIN
INSERT INTO tblBlacklist(NRIC,Name,Description,createdatetime,Location1)
VALUES(@NRIC,@Name,@Description,getdate(),@Location1)
END
ELSE
BEGIN
UPDATE tblBlacklist
SET
    NRIC = @NRIC,
    Name = @Name,
    Description = @Description,
    createdatetime = getdate()
WHERE ID= @ID and Location1=@Location1
END
END

GO


CREATE PROC ViewAll
@Location1 varchar(50)
AS
BEGIN
SELECT *
FROM tblBlacklist
WHERE Location1 = @Location1
END

GO
...