sql-server - SQL Server 中的存储过程(变量声明)
问题描述
我正在尝试在 SQL Server 中创建一个存储过程,但每当我尝试执行它时,我都会收到错误消息:
Msg 137, Level 15, State 2, Line 48
必须声明标量变量“@FirstName”
我以为我FirstName
在WHERE
条件下声明了,但它似乎不正确。
CREATE PROCEDURE Example6
@FirstName VARCHAR(50),
@LastName VARCHAR(50),
@MiddleName VARCHAR(50)
AS
SELECT
[employee_id], [employee_type_id],
[HR_status_id], [employer_id],
[fName], [mName], [lName],
[address], [city], [state_id], [zip],
[hireDate], [currDate],
[ssn], [ext_emp_id],
[terminationDate], [dob],
[initialMeasurmentEnd],
[plan_year_id], [limbo_plan_year_id], [meas_plan_year_id],
[modOn], [modBy],
[plan_year_avg_hours], [limbo_plan_year_avg_hours],
[meas_plan_year_avg_hours], [imp_plan_year_avg_hours],
[classification_id], [aca_status_id], [ResourceId]
FROM
dbo.employee
WHERE
[fName] = @FirstName
AND [lName] = @LastName
AND [mName] = @MiddleName
AND @FirstName LIKE '%son%' OR @LastName LIKE '%son%';
解决方案
您应该在参数子句中添加括号。
试试那个:
CREATE PROCEDURE Example6
(@FirstName varchar(50),
@LastName varchar(50),
@MiddleName varchar(50))
AS
SELECT [employee_id]
,[employee_type_id]
,[HR_status_id]
,[employer_id]
,[fName]
,[mName]
,[lName]
,[address]
,[city]
,[state_id]
,[zip]
,[hireDate]
,[currDate]
,[ssn]
,[ext_emp_id]
,[terminationDate]
,[dob]
,[initialMeasurmentEnd]
,[plan_year_id]
,[limbo_plan_year_id]
,[meas_plan_year_id]
,[modOn]
,[modBy]
,[plan_year_avg_hours]
,[limbo_plan_year_avg_hours]
,[meas_plan_year_avg_hours]
,[imp_plan_year_avg_hours]
,[classification_id]
,[aca_status_id]
,[ResourceId]
FROM dbo.employee
WHERE @FirstName LIKE '%son%' OR @LastName LIKE '%son%';
推荐阅读
- ruby-on-rails - 如何自定义 Gitlab LDAP 认证功能?
- angular - Angular - 每个客户的远程 API 的基本 URL 映射
- vb.net - 找不到第 4 列
- java - Java Spring Boot不记录异常
- python - 将与唯一标签对应的值附加为熊猫数据框中的值列表
- datatable - 如何在primefaces中使用基于条件的自定义颜色“突出显示选定的行”
- python - 尝试将jpg文件提取到numpy数组时如何处理“OSError:获取第一个字节后无法回溯”
- java - Java:线程安全的数据集实现
- ruby-on-rails - 邮戳邮件仅适用于生产环境
- javascript - 在选择选项中按元字符串搜索