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