【发布时间】:2011-12-21 10:08:52
【问题描述】:
现在我将一个数据库表正常使用到另一个数据库存储过程(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中执行
同一查询动态传递数据库名称
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
【问题讨论】:
标签: sql-server-2008 stored-procedures asp.net-4.0