【发布时间】:2014-12-04 16:47:49
【问题描述】:
我在 SQL Server 2008 数据库上有一个存储过程。存储过程很简单,就是一个SELECT语句。当我运行它时,它返回 422 行。但是,当我从存储过程运行 SELECT 语句时,它返回 467 行。我已经通过在同一个 SSMS 窗口中同时运行存储过程和 SELECT 语句来尝试这个,并且行为是相同的。存储过程是:
USE [REMS]
GO
/****** Object: StoredProcedure [mobile].[GetAllMobileDeviceUsers] Script Date: 12/04/2014 */
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [mobile].[GetAllMobileDeviceUsers]
AS
SET NOCOUNT ON
SELECT
ee.EmployeeID,
EmployeeName = LastName + ', ' + FirstName
FROM EmployeeInvData ee
--UNION
--SELECT
--m.EmployeeID,
--EmployeeName = LastName + ', ' + FirstName
--FROM mobile.MiscPersonnel m
INNER JOIN Employee e
ON ee.EmployeeID = e.EmployeeID
UNION
SELECT
'-1',
'- Select An Employee -'
ORDER BY EmployeeName
当我在同一个 SSMS 窗口中执行此操作时:
exec mobile.GetAllMobileDeviceUsers
SELECT
ee.EmployeeID,
EmployeeName = LastName + ', ' + FirstName
FROM EmployeeInvData ee
--UNION
--SELECT
--m.EmployeeID,
--EmployeeName = LastName + ', ' + FirstName
--FROM mobile.MiscPersonnel m
INNER JOIN Employee e
ON ee.EmployeeID = e.EmployeeID
UNION
SELECT
'-1',
'- Select An Employee -'
ORDER BY EmployeeName
我得到两个结果集。第一个是 422 行;第二个是 467 行。为什么?
【问题讨论】:
-
数据库/模式上下文?您的所有对象名称都不合格。
-
戴夫,就是这样!我们有一个 mobile.Employee 表和一个 dbo.Employee 表。请输入答案,我会支持你。非常感谢。我们三个人都在盯着它看,但我们没有看到。
标签: sql sql-server tsql stored-procedures