這是我的存儲過程中正常工作的示例sql查詢。 但我想通過特許權,這是這裏的TH-003853199「和動態表名的值..存儲過程中的錯誤
SELECT @source = source,@stage = stage
FROM BABMwork8_22_1210_0012.dbo.concessions
WHERE concession = 'TH-003853199'
和存儲過程,在查詢
ALTER PROCEDURE status_in_other_db
@other_db VARCHAR(50),
@concession VARCHAR(30)
AS
BEGIN
SET NOCOUNT ON
DECLARE @query VARCHAR(8000),
@other_db_con VARCHAR(80),
@source VARCHAR(10),
@stage VARCHAR(50),
@status_in_other_db VARCHAR(50)
SET @other_db_con = @other_db + '.dbo.concessions' ;
SET @query = ('SELECT @source = source,@stage = stage FROM ' + @other_db_con + ' WHERE concession = '''[email protected]+''' ')
EXEC(@query)
IF(@source!='PARK')
BEGIN
SET @status_in_other_db =
CASE @stage
WHEN 'Open' THEN 'Open'
WHEN 'Archive' THEN 'Archived'
WHEN 'R4invoicing' THEN 'Ready for invoicing'
WHEN 'N2Bdetermined' THEN'SplitBA'
WHEN 'Invoiced' THEN 'Invoiced'
WHEN 'Exclusion' THEN'Exclusion'
END
END
ELSE IF(@source='PARK')
SET @status_in_other_db = 'PARK'
ELSE IF(@source='')
SET @status_in_other_db = 'Not present'
SELECT @status_in_other_db as status_in_other_db
END
編輯在這裏我想要返回@status_in_other_db的值,這應該是我的輸出參數。
執行此存儲過程時,出現錯誤: - 必須聲明@source標量變量。
Eventhough我修改,所以,現在我沒有得到任何錯誤訊息,也沒有結果...
SET @query = 'DECLARE @source VARCHAR(10), @stage VARCHAR(50) '
SET @query = @query + 'SELECT @source = source,@stage = stage
FROM BABMwork8_22_1210_0012.dbo.concessions
WHERE concession = ''TH-003853199'' '
請幫我
+1,Thanku verymuch分配@Source和@Stage。這就像一個魅力。我也很欣賞一步一步的程序:-) – satya 2011-01-28 12:36:19