为什么存储过程运行我的Quary不止一个 [英] Why Stored Procedure Run My Quary More Than One

查看:64
本文介绍了为什么存储过程运行我的Quary不止一个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SELECT CI.ImageId , CI.CombinationId , C.Id 
FROM
Production.Product P
INNER JOIN
Production.Combination C
ON
P.Id = C.Product_Id
AND 
P.Id = 11
INNER JOIN
Production.Combination_Image CI 
ON
C.Id = CI.CombinationId
INNER JOIN
Production.[Image] I
ON 
CI.ImageId = I.Id
AND
I.Id = 18





和我的结果是对的





and here my Result is right

RESULT :
18	12	12





很好,这是我的真实结果但是! :|



现在我将该查询作为存储过程

就像在这里一样





Its fine and that's my real Result BUT !!! :|

NOW I make that query as a stored procedure
like under here

CREATE PROC GetCombinationAndCombinationImageByProductIdAndImageId
@ProductId INT,
@ImageId INT
AS
BEGIN
SELECT CI.ImageId , CI.CombinationId , C.Id 
FROM
Production.Product P
INNER JOIN
Production.Combination C
ON
P.Id = C.Product_Id
AND 
P.Id = @ProductId
INNER JOIN
Production.Combination_Image CI 
ON
C.Id = CI.CombinationId
INNER JOIN
Production.[Image] I
ON 
CI.ImageId = I.Id
AND
I.Id = @ImageId
END


-- and here EXECUTE my proc
EXEC GetCombinationAndCombinationImageByProductIdAndImageId @ProductId = 11 , @ImageId=18





AND ...结果:|





AND ... RESULT :|

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)
Msg 217, Level 16, State 1, Procedure GetCombinationAndCombinationImageByProductIdAndImageId, Line 55
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).





请帮助我:)



关心



Please Help Me :)

Regards

推荐答案

亲爱的PIEBALDconsult说:

i需要附上我的执行

我只是遵守封装

批量

GO



我忘了GO

:)



谢谢

PIEBALDconsult< br $>


DEAR "PIEBALDconsult" said :
i need enclose my execution
and i just observance the encapsulation
with batch
"GO"

Exactly i forgot GO
:)

thanks
"PIEBALDconsult"

ALTER PROC GetCombinationAndCombinationImageByProductIdAndImageId
@ProductId INT,
@ImageId INT
AS
BEGIN
SELECT CI.ImageId , CI.CombinationId
FROM
Production.Product P
INNER JOIN
Production.Combination C
ON
P.Id = C.Product_Id
AND 
P.Id = @ProductId
INNER JOIN
Production.Combination_Image CI 
ON
C.Id = CI.CombinationId
INNER JOIN
Production.[Image] I
ON 
CI.ImageId = I.Id
AND
I.Id = @ImageId
END
GO
EXEC GetCombinationAndCombinationImageByProductIdAndImageId @ProductId = 11 , @ImageId=17
GO


这篇关于为什么存储过程运行我的Quary不止一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆