SQL 存储过程错误

问题描述 投票:0回答:1

我正在做一项 SQL 作业,它把我逼到了崩溃的边缘。

*这些是存储过程的要求:

  1. 创建一个存储过程 (Get_ListOfEmployeeInZip),用于返回特定邮政编码中的员工数据。
  2. 存储过程返回 - 名字、姓氏、JobTtile、部门(来自 CS120Exam_EmployeeDepartmentHistory 表)、电话号码和位置(根据 CountryRegionName,这应该是“美国”或“其他国家/地区”)。
  3. 将存储过程命名为 Get_ListOfEmployeeInZip*

存储过程完成后,运行

EXEC dbo.Get_ListOfEmployeeInZip '98055'
EXEC dbo.Get_ListOfEmployeeInZip '55402'
,例如,应该会找到这些邮政编码中的员工。

这是我的存储过程的代码:

CREATE PROCEDURE Get_ListOfEmployeeInZip
@zip AS NVARCHAR(10)
AS

SELECT E.FirstName, E.LastName, E.JobTitle, H.Department, E.PhoneNumber, E.PostalCode, E.CountryRegionName

FROM CS120Exam_Employee AS E

JOIN CS120Exam_EmployeeDepartmentHistory AS H

ON H.BusinessEntityID = E.BusinessEntityID

WHERE E.CountryRegionName IN ('US', 'Other Country')

AND E.PostalCode = @zip;

GO

当我尝试搜索特定区号时,我的结果没有任何结果。它显示了数据应该在的表,但它只是空的。如果我只是运行 EXEC dbo.Get_ListOfEmployeeInZip,我会收到一条错误消息:

消息 201,级别 16,状态 4,过程 dbo.Get_ListOfEmployeeInZip3,第 0 行 [批量起始行 0]
过程或函数“Get_ListOfEmployeeInZip3”需要参数“@zip”,但未提供该参数。

我已经为此工作了大约 12 个小时,但我已经束手无策了。

sql-server stored-procedures
1个回答
0
投票

您的 select 语句在没有存储过程的情况下也能工作吗?

错误是正常的,因为调用不带参数的 sp 总是会返回错误。我能想到的唯一可行的问题是您的 select 语句一般不会返回任何内容。

先试试这个

SELECT E.FirstName, E.LastName, E.JobTitle, H.Department, E.PhoneNumber, E.PostalCode, E.CountryRegionName

FROM CS120Exam_Employee AS E

JOIN CS120Exam_EmployeeDepartmentHistory AS H

ON H.BusinessEntityID = E.BusinessEntityID

WHERE E.CountryRegionName IN ('US', 'Other Country')

AND E.PostalCode = '11379';

-- 或任何其他 zipcde

看看它是否返回任何东西,如果没有,那就是你的问题

© www.soinside.com 2019 - 2024. All rights reserved.