为什么存储过程运行我的Quary不止一个 [英] Why Stored Procedure Run My Quary More Than One
本文介绍了为什么存储过程运行我的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屋!
查看全文