在EXISTS语句中怎么老是提示我没有定义变量?
明明定义了@tmp1的啊,怎么老是说我没有定义@tmp1呢?
以下是我的存储过程,请大侠帮忙看看,谢谢!
--说明:GetUserByDepartmentId
--作用:根据部门ID获取所有的用户
CREATE PROCEDURE GetUserByDepartmentId
@Department_Id INT
AS
SET NOCOUNT ON
DECLARE @tmp1 TABLE ( fid INT, fdepartment_id INT)
DECLARE @tmp2 TABLE ( fid INT, fdepartment_id INT)
INSERT @tmp1
SELECT fid,fdepartment
FROM tdepartment
WHERE fdepartment_id = @Department_Id
WHILE EXISTS(SELECT * FROM @tmp1 WHERE EXISTS(SELECT * FROM tdepartment WHERE fdepartment_id = @tmp1.fid))
BEGIN
INSERT @tmp2 SELECT a.* FROM tdepartment a, @tmp1 b WHERE a.fdepartment_id = b.fid
DELETE FROM @tmp1 WHERE EXISTS(SELECT * FROM tdepartment WHERE fdepartment_id = @tmp1.fid)
INSERT @tmp1 SELECT * from @tmp2
DELETE FROM @tmp2
END
SELECT * FROM tuser WHERE fdepartment_id IN (SELECT fid FROM @tmp1)
SET NOCOUNT OFF
GO