我想在一個存盤程序中使用WITH RECOMPILE,在宣告的引數被填滿后。我應該把它放在哪里?
我想做這樣的事情:
CREATE PROCEDURE sp_dosomething
@AdrID INT = '32'
AS
SELECT @AdrID = SELECT MAX(ID
FROM地址
WITH RECOMPILE
SELECT Streetname FROM Workadress WHERE ID = @AdrID
SELECT Streetname FROM Homeadress WHERE ID = @ADRID
歸檔
所以我想設定引數,然后在每次執行存盤程序時重新編譯其余部分的執行計劃。
怎樣做才是正確的?
請幫助我。
請幫助我。
uj5u.com熱心網友回復:
這樣做應該可以:
CREATE PROCEDURE sp_dosomething_sub @AdrID INT
WITH RECOMPILE
AS
Select Streetname from Workadress where ID = @AdrID
Select Streetname from Homeadress where ID = @AdrID
歸
CREATE PROCEDURE sp_dosomething @AdrID INT = '32'/span>
AS
選擇 @AdrID = Select max(ID) FROM Address
EXEC sp_dosomething_sub @ArdID
啟用
注意,我并不是說這一定是個好主意,我只是說它應該做你想做的事。 這需要一些非常奇怪(或復雜)的情況,才能成為一個理想的方法。
uj5u.com熱心網友回復:
我總是說,只要你有資源(包括時間、金錢、知識等等),一切都有可能。這種情況也不例外。為了使用這種格式,你所需要做的就是設計和開發你自己的語言,因為這種格式不是有效的Transact SQL格式。
你的問題就像問我如何計算1 1并得到3。答案是建立你自己的數學,因為它不適合普通的數學語言。
如果我對你的需求(而不是請求)理解正確,那么你可以通過從另一個存盤程序執行一個存盤程序來獲得你所需要的東西。
你可以撰寫配置引數的存盤程序X,這個存盤程序X將執行使用WITH RECOMPILE
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/311039.html
標籤:
