【发布时间】:2018-06-09 07:25:32
【问题描述】:
我正在尝试学习 SQL,但遇到了存储过程的问题。我有一个如图所示的表结构,其中Repair.RepairerId 和Repair.CarId 是相应表的外键。
我需要做的是创建一个存储过程,允许用户从表 Repair 中删除实体,用户可以在 Microsoft SQL Server 2017 中选择汽车型号和维修商名称。
现在我有下一个代码:
CREATE PROCEDURE [dbo].[DeleteRepairInfo]
@Name nvarchar(MAX),
@Model nvarchar(MAX)
AS
DELETE Repair.*
FROM Repair INNER JOIN Repairer ON Repair.RepairerId = Repairer.Id
INNER JOIN Car ON Repair.CarId = Car.Id
WHERE Car.Model LIKE @Model AND Repairer.Name LIKE @Name
GO
但是 Visual Studio 2017 中的 SQL 编辑器给了我错误:
SQL46010:.. 附近的语法不正确
此外,所有INNER JOIN 语句及其= 符号以及单词LIKE、AND 和最后的LIKE 均呈灰色显示。 (我不确定这是否可以)。
您可以在下一张图片中看到这一点:
【问题讨论】:
-
SQL46010: Incorrect syntax near ..的其余部分是什么意思? -
顺便说一句,“灰显”的 SQL 关键字实际上只是 SSMS 语法高亮显示。
-
删除艺术。只需
DELETE Repair FROM ... -
@digital.aaron 它什么也没说,只是我提到的确切内容。并感谢您对 SSMS 语法的回答!
-
啊,好吧,现在说得通了。错误告诉您语法不正确是在
DELETE Repair.*中的句点。
标签: sql sql-server stored-procedures sql-server-2017