【发布时间】:2020-02-16 01:16:08
【问题描述】:
我正在编写一个存储过程,根据输入参数传递返回 N 条记录:
ALTER PROCEDURE [dbo].[StaffQueue]
@Staff_Dept VARCHAR(100),
@numberOfStaffs INT
AS
BEGIN
DECLARE @SQL VARCHAR(1000)
SET @SQL = 'select top ('+ @numberOfStaffs +') Display_Name as
StaffName,e.Emp_code as StaffCode from Employee e'
IF @Staff_Dept > ''
SET @SQL = @SQL + ' where e.Designation IN ('''+@Staff_Dept+''')';
EXEC(@SQL);
END
当我像这样执行这个存储过程时:
EXEC StaffQueue @Staff_Dept ='', @numberOfStaffs = 10
显示错误:
Top('
附近的转换错误
谁能帮我解决这个错误?
【问题讨论】:
-
先尝试打印@SQL并检查
-
@RedDevil.. 朋友,你能告诉我如何打印吗?
-
注释 EXEC (@SQL) 并写 print @sql
标签: sql sql-server sql-server-2008 sql-server-2005