[英]Passing parameters from Stored Procedure to Function (inside Stored Procedure)
我有一個問題,我已經研究Stackoverflow沒有任何運氣的答案。 我已經設法構建一個使用名為GetSubtree_relvalue的函數的存儲過程。 當函數的參數硬編碼時,存儲過程及其功能正常工作。 但是現在我希望函數固有在執行時使用存儲過程發送的參數。
當我用@attribute_id替換XX和USA和使用@Client替換USA時,它不會返回任何內容。 到目前為止我調試了它,以便我可以斷定該函數在運行時沒有得到任何值。 即使存儲過程中的這些參數與我硬編碼的值完全相同,也是如此。 (我在程序中選擇了常規選擇@client並返回美國。)
我是否錯誤地參數化了這個函數? 我是否需要啟動函數參數才能將其發送/傳遞給函數? 如何獲取函數到inhere參數?
關於將參數從SP傳遞到函數的所有輸入,我會很高興。
使用SQL Server 2008
謝謝
/丹尼爾
功能值硬編碼
Insert into att_value_lookup (t.attribute_ID, t.att_value)
Select
t.attribute_ID, t.att_value
From
(Select attribute_id, att_value from relvalue
where attribute_id in (
Select attribute_id from (
select attribute_id
from dbo.GetSubtree_relvalue('XX','USA'))
) as t
函數值已參數化
Insert into att_value_lookup (t.attribute_ID, t.att_value)
Select
t.attribute_ID, t.att_value
From
(Select attribute_id, att_value from relvalue
where attribute_id in (
Select attribute_id from (
select attribute_id
from dbo.GetSubtree_relvalue('@attribute_id','@client'))
) as t
刪除引號!!
dbo.GetSubtree_relvalue('@attribute_id','@client')
應該:
dbo.GetSubtree_relvalue(@attribute_id,@client)
你傳遞像'XX'和'USA'這樣的文字字符串值時只需要它們,而不是在傳遞變量時。 您實際上是在傳遞包含變量名稱的字符串:'@ attribute_id','@ client'而不是變量中包含的值。
你可以看看:
DECLARE @x varchar(10)
SET @x='wow wee!!'
print '@x'
print @x
從參數周圍刪除引號。 您當前正在傳遞恰好是參數名稱的字符串,但不傳遞參數本身。
from dbo.GetSubtree_relvalue(@attribute_id,@client)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.