0
現在我使用一個數據庫表到另一個數據庫存儲過程正常(database name..table name
),但我已經動態傳遞的數據庫名稱怎麼寫存儲程序請給我任何建議如何使用一個數據庫表到另一個數據庫的存儲過程,動態傳遞的數據庫名稱
我寫這樣的
Select QT.Name,SC.Name as Status,QT.QuoteNumber,QT.PolicyNumber,LC.Name as LineCode,QT.DBAName as DBAName
from QMSV3Dev..Quote QT, QMSV3Dev..StatusCode SC, QMSV3Dev..LineCode LC
where QT.StatusCode = SC.StatusCode And QT.LineCode = LC.LineCode and
QT.DBAName like 'a%' order by QT.Name,QuoteNumber desc
在上面的存儲過程QMSV3Dev..Quote
,QMSV3Dev
是數據庫名稱和Quote
是表名,這個SP像另一個數據庫中執行現在
同樣的查詢通過數據庫名稱動態
CREATE Procedure [dbo].[usp_GetSearch123]
(
@SearchValue varchar(100),
@SearchBy varchar(250),
@DbName varchar(50)
)
AS
Begin
Select QT.Name,SC.Name as Status,QT.QuoteNumber,QT.PolicyNumber,LC.Name as LineCode,QT.DBAName as DBAName
from @DbName+'..Quote ' QT,@DbName+'.. StatusCode' SC, @DbName+'..Linecodes' LC
where QT.StatusCode = SC.StatusCode And QT.LineCode = LC.LineCode and
(QT.Name like @SearchValue+'%' or QT.DBAName like @SearchValue+'%')
order by QT.Name,QuoteNumber desc
end
它不工作錯誤消息102,級別15,狀態1,過程usp_GetSearch123,12號線 附近有語法錯誤 'QT'。 – hmk 2011-12-21 10:22:58
@hmkmudiam我editted我的答案,你可能會再試一次。 – 2011-12-21 10:26:03
成功,但在執行EXEC usp_GetSearch123 'A' 創建, '', 'QMSV3Dev' 錯誤消息208,級別16,狀態1,行1 無效的對象名稱QMSV3Dev..StatusCodes「。請檢查 – hmk 2011-12-21 10:33:01