Теперь я обычно использую одну таблицу базы данных в другой хранимой процедуре базы данных (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 выполняется в другой базе данных, например test
now
Тот же запрос передает имя базы данных динамически
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