Now I am using one database table to another database stored procedure normally (database name..table name) but I have dynamically pass the database name how to write the stored procedure pls give me any suggestion
I am writing like this
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
In above stored procedure QMSV3Dev..Quote, QMSV3Dev is the database name and Quote is table name, this sp executed in another database like test now
Same query pass the database name dynamically
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
The answer is simpler that you think. For that, you have to use Dynamic SQL.
It would be something like this:
You create a
varcharvariable@cmdand put the select on it and afterwards execute it byexec(@cmd).