Sql server 2008 存储过程中的动态SQL不返回结果集;在SSMS中运行时,我会得到结果

Sql server 2008 存储过程中的动态SQL不返回结果集;在SSMS中运行时,我会得到结果,sql-server-2008,tsql,stored-procedures,Sql Server 2008,Tsql,Stored Procedures,我有一个存储过程,它构建并执行动态sql。它不会给出错误消息,但不会返回结果。但是,当我在sp中手动运行代码时,会得到我想要的结果。为什么会这样?sp接受一个nvarcharmax参数@CLM。ANSI_NULLS、QUOTED_IDENTIFIER和NOCOUNT处于启用状态。sp中有一个临时表tmpAffPeople。其列为EmpLogin nvarchar8、Matter nvarchar15、NameandTitle nvarcharmax、TotalHours decimal6,2、C

我有一个存储过程,它构建并执行动态sql。它不会给出错误消息,但不会返回结果。但是,当我在sp中手动运行代码时,会得到我想要的结果。为什么会这样?sp接受一个nvarcharmax参数@CLM。ANSI_NULLS、QUOTED_IDENTIFIER和NOCOUNT处于启用状态。sp中有一个临时表tmpAffPeople。其列为EmpLogin nvarchar8、Matter nvarchar15、NameandTitle nvarcharmax、TotalHours decimal6,2、ClientMatter varcharmax。sp的文本如下:

DECLARE @SQLString AS nvarchar(max)
SET @SQLString = ';WITH Emps (EmpLogin, AttorneyAndTitle)
AS
(SELECT EmpLogin, 
CASE WHEN EmpTermDate IS NULL OR EmpTermDate = ' + '''' + '''' + ' THEN LastName + ' + '''' + ', ' + '''' + ' + FirstName + ' + ''''+ ' [' + '''' + ' + Title + ' + '''' + '] ' + '''' +
'ELSE LastName + ' + '''' + ', ' + '''' + ' + FirstName + ' + '''' + ' [' + '''' + ' + Title +' + '''' +'] (inactive) ' + '''' + ' END as FullName 
FROM [LitigationHold].[dbo].[Employees] 
where JobCode IN (' + '''' + '100' + '''' + ',' + '''' + '300' + '''' + ',' + '''' + '400' + '''' + ',' + '''' + '500' + '''' + ',' + '''' + '700' + '''' + ',' + '''' + '800' + '''' + ',' + '''' + '1801' + '''' + '))
INSERT INTO #tmpAffPeople
SELECT t.[EmpLogin],t.Matter, e.AttorneyAndTitle, SUM([Workhours]) AS TotalHours,
c.ClientName + ' + '''' + '/' + '''' + ' + em.MatterDesc
FROM TimeCard t
INNER JOIN Emps e
ON e.EmpLogin = t.EmpLogin
INNER JOIN EliteMatter em
ON t.Matter = em.MatterName
INNER JOIN EliteClient c
ON c.ClientNum = em.ClientNum
WHERE t.Matter IN (' + @CLM + ')
GROUP BY t.EmpLogin, c.ClientName, em.MatterDesc, t.Matter, e.AttorneyAndTitle
ORDER BY TotalHours'

运行此命令之后,在sp中,我通过在括号之间的@SQLString后面调用execute来执行@SQLString。然后我放下桌子。我以前做过这种事情,从来没有遇到过问题。我错过了什么?我正在使用SQLServer2008R2

您需要从tmpAffPeople表中选择行,以从存储过程中获取结果集

您需要从tmpAffPeople表中选择行,以从存储过程中获取结果集,看在Pete的份上!谢谢你,超级毕业生!如果你将此作为答案,我将投票表决。星期五一定很晚了,我刚找到我的d'oh!这一周,这发生在我们最好的人身上=