首页 > 解决方案 > 添加插入存储过程等时出现MSSQL错误

问题描述

以下代码出现错误>用户附近的语法不正确

CREATE PROCEDURE [dbo].[Add]
    @Name NVARCHAR(50),
    @Email NVARCHAR(50),
    @Address NVARCHAR (300)
AS
    INSERT INTO User([Name],[Email],[Address]) VALUES ("'@Name','@Email','@Address'")
RETURN 0

并尝试了下面的代码

CREATE PROCEDURE [dbo].[Add]
    @Name NVARCHAR(50),
    @Email NVARCHAR(50),
    @Address NVARCHAR (300)
AS
    INSERT INTO User VALUES ("@Name,@Email,@Address")
RETURN 0

我正在使用下表

CREATE TABLE [dbo].[User] (
    [UserId]  INT            NOT NULL,
    [Name]    NVARCHAR (50)  NOT NULL,
    [Email]   NVARCHAR (50)  NOT NULL,
    [Address] NVARCHAR (300) NULL,
    PRIMARY KEY CLUSTERED ([UserId] ASC)

);


使用 Visual Studio 2019 sql server 2016 版本 13.00.4001

我无法找出问题 ,所以在这里帮帮我

标签: sql-servervisual-studiostored-proceduressql-insert

解决方案


User是 中的保留关键字SQL Server,使用方括号:

INSERT INTO [User] ([Name],[Email],[Address]) 
    VALUES (@Name, @Email, @Address)

add此外,还保留了存储过程。最好的选择是重table/sp命名。

编辑 :

CREATE PROCEDURE [dbo].[Add] (
    @Name NVARCHAR(50),
    @Email NVARCHAR(50),
    @Address NVARCHAR (300) 
)
AS
    INSERT INTO [User] ([Name],[Email],[Address]) 
           VALUES (@Name, @Email, @Address)

推荐阅读