SQL Server 2008 Proc在2005年失败
问题描述:
ALTER PROCEDURE [Lending].[uspHMDALarIncomeGet] (@ApplicationId int)
AS
BEGIN
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
-- Total Income Data
DECLARE @ApplicantId int = (SELECT AT.ApplicantId FROM Lending.Applicant AT WHERE AT.ApplicationId = @ApplicationId)
SELECT
I.Amount
FROM Lending.Income I WHERE I.ApplicantId = @ApplicantId
END
你们知道这个过程如何在05中成功吗?SQL Server 2008 Proc在2005年失败
斯科特
答
SQL2005没有语法来声明,并在同一语句中指定一个变量。你需要改变
DECLARE @ApplicantId int = (SELECT ...
要
DECLARE @ApplicantId int
SELECT @ApplicantId = AT.ApplicantId
FROM Lending.Applicant AT
WHERE AT.ApplicationId = @ApplicationId
编辑:
这只是发生在我身上,我可能已经改变了语义的一点还有,如果有可能永远不会超过一行匹配AT.ApplicationId = @ApplicationId
。
DECLARE @ApplicantId int
SET @ApplicantId = (SELECT AT.ApplicantId ...
会保留原来的语义并在该事件中导致错误。
+0
我知道它必须做些小事!非常感谢你的救星。 – Scott 2010-07-23 12:17:11
你能告诉我们你收到了什么错误,以及这行是什么:DECLARE @ApplicantId int =(SELECT AT.ApplicantId FROM Lending.Applicant AT WHERE AT.ApplicationId = @ApplicationId) – mattmc3 2010-07-23 12:18:46