【发布时间】:2018-07-31 12:27:21
【问题描述】:
我在基于 ASP.NET 表单的网页上显示查询时遇到问题。
我正在尝试通过学生 ID 主键提取信息,但它不起作用。我在教科书或课程视频中的任何地方都找不到它。
CREATE PROCEDURE GetStudent
@ StudentID int NOT NULL,
AS
BEGIN
IF (@StudentID IS NOT NULL)
SELECT *
FROM StudentDetail
WHERE
StudentID= @StudentID
END;
错误:
消息 102,级别 15,状态 1,过程 GetStudent,第 2 行 [Batch Start Line 0] 'int' 附近的语法不正确。
消息 137,第 15 级, 状态 2,过程 GetStudent,第 5 行 [批处理开始第 0 行] 必须 声明标量变量“@StudentID”。
消息 137,级别 15,状态 2, 程序 GetStudent,第 9 行 [Batch Start Line 0] 必须声明 标量变量“@StudentID”。
【问题讨论】:
-
@ StudentID应该是@StudentID没有任何空格。这就是为什么它告诉你它没有听说过任何名为@StudentID的变量——当你把它和空格放在一起时它不明白你写了什么,所以它认为你没有定义那个变量。 -
你的@StudentID是不是错字了,这个空格是不是错了? NOT NULL 之后的逗号也是无效的
-
问题已经解决,非常感谢大家。
-
对否决这个问题的人感到羞耻。它是有效的,写得很好,并且比我们在这里看到的许多问题更完整。我不了解其他人,但我已经盯着这样的代码看了 几个小时,想知道“为什么 ^#%*@# 不起作用?!?”,只是为了有人在 7 秒内发现了错误。
标签: sql sql-server tsql stored-procedures