2011-12-21 8 views
0

現在、データベーステーブルを別のデータベースストアドプロシージャ(database name..table name)に使用していますが、のような別のデータベース内で実行これはSP、テーブル名ですQMSV3Devは、データベース名とQuoteで、私がストアドプロシージャQMSV3Dev..Quote上記でこの1つのデータベーステーブルを別のデータベースストアドプロシージャに動的に使用する方法

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 

のように書いています任意の提案

を手順PLS与えますは今

同じクエリは、データベース名を渡す動的

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 

答えて

1

答えはあなたが考えることが簡単です。そのためには、Dynamic SQLを使用する必要があります。

それはこのようなものになるだろう:あなたはvarchar変数@cmdを作成し、その上で選択を入れて、その後exec(@cmd)でそれを実行

CREATE Procedure [dbo].[usp_GetSearch123]  
(  
@SearchValue varchar(100),  
@SearchBy varchar(250), 
@DbName varchar(50)  
)  
AS  
Begin 

    Declare @cmd varchar(5000) 

    select @cmd = 
    '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' 

    exec(@cmd) 
end 

+0

メッセージ102、レベル15、状態1、プロシージャusp_GetSearch123、行12のエラーが発生していません。 'QT'付近の構文が正しくありません。 – hmk

+0

@hmkmudiam私は自分の答えを編集しました、あなたはもう一度やり直すかもしれません。 –

+0

が正常に作成されましたが、実行中です。usp_GetSearch123 'a'、 ''、 'QMSV3Dev'エラーはmsg 208、レベル16、状態1、行1です。 無効なオブジェクト名 'QMSV3Dev..StatusCodes'。 plsそれをチェック – hmk

関連する問題