Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 不正确的语法错误sql_Sql Server_Stored Procedures_Syntax Error - Fatal编程技术网

Sql server 不正确的语法错误sql

Sql server 不正确的语法错误sql,sql-server,stored-procedures,syntax-error,Sql Server,Stored Procedures,Syntax Error,我看不到我的编码中有任何错误。错误消息是 Msg 156,级别15,状态1,程序CreateOrUpdate,第28行[批处理起始行0] 关键字“PROC”附近的语法不正确 请帮助我,谢谢。一个建议是在两个create语句之间添加一个go,并删除系统注释: CREATE PROC CreateOrUpdate @ID INT, @NRIC VARCHAR(50), @Name VARCHAR(50), @Description VARCHAR(50), @

我看不到我的编码中有任何错误。错误消息是

Msg 156,级别15,状态1,程序CreateOrUpdate,第28行[批处理起始行0]
关键字“PROC”附近的语法不正确


请帮助我,谢谢。

一个建议是在两个create语句之间添加一个go,并删除系统注释:

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

尝试将您的输入参数环绕在Fist brace()中。

数据库是什么?当您添加SQL标记时,会显示一个框,其中建议您也为您正在使用的特定DBMS添加一个标记,因为它们之间的语法和功能不同。你为什么忽视这个建议?你只是让你需要更长的时间才能得到答案,因为我们现在必须等待你添加答案,这样我们才能知道如何帮助你。这很简单-你错过了一个机会-哦,我不知道这是一个旧的答案:)在参数列表周围使用括号不是必需的。
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