Sco*_*ott 1 sql t-sql sql-server-2005 sql-server-2008
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
Run Code Online (Sandbox Code Playgroud)
你们知道这个过程如何写成05年才能成功吗?
斯科特
SQL2005没有在同一语句中声明和赋值变量的语法.你需要改变
DECLARE @ApplicantId int = (SELECT ...
Run Code Online (Sandbox Code Playgroud)
至
DECLARE @ApplicantId int
SELECT @ApplicantId = AT.ApplicantId
FROM Lending.Applicant AT
WHERE AT.ApplicationId = @ApplicationId
Run Code Online (Sandbox Code Playgroud)
编辑:
我刚刚想到,如果可以有多个行匹配,我可能会稍微改变语义AT.ApplicationId = @ApplicationId.
DECLARE @ApplicantId int
SET @ApplicantId = (SELECT AT.ApplicantId ...
Run Code Online (Sandbox Code Playgroud)
将保留原始语义并在该事件中导致错误.
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |