でテーブルを連結するクエリの下方法を選択し、動的クエリ
DECLARE @DBName AS Nvarchar(MAX)
select TOP(1) @DBName=DBName from StreamLeaderMaster.dbo.TicketMasterDB ORDER BY id DESC
DECLARE @SQL AS Nvarchar(MAX)
SET @SQL=
'Select TCH.ID,MasterDB.CreatedByUserID,MasterDB.CreatedByDBName,
MasterDB.CreatedByDBName+''.dbo.tblSMSecurityUser'' as waheguru,
(select ISNULL(strFirstName,'''') as firstname from
dbo.tblSMSecurityUser where UserID=1) as waheguru2,MD.DBName,
U.strFirstName,Message,CONVERT(VARCHAR(9),CONVERT(date,
CH.CreatedDate),6) As CreatedDate,TCH.CreatedDate as CreatedDateTime,
RepliedByUserID,RepliedMasterDBID from
StreamLeaderMaster.dbo.TicketChatHistory TCH
left join '[email protected] +'.dbo.tblSMSecurityUser U on
U.UserID=TCH.RepliedByUserID
left join StreamLeaderMaster.dbo.TicketMasterDB MD on
MD.ID=TCH.RepliedMasterDBID
LEFT JOIN StreamLeaderMaster.dbo.TicketMaster MasterDB on
MasterDB.ID=TCH.TicketMasterID
where TCH.TicketMasterID=1 and (TCH.IsDeleted <> 1 or TCH.IsDeleted IS
NULL) order by CreatedDateTime desc'
PRINT @SQL
Exec(@SQL)
を確認してくださいMasterDB.CreatedByDBNameは、私は、サブクエリ IEでdbo.tblSMSecurityUser前に添付したいDB名です
(select ISNULL(strFirstName,'''') as firstname from
ユーザID = 1 dbo.tblSMSecurityUser)waheguru2
として210は、私はそれは以下のようにそれを取得したい:によってどのような方法があります。.. waheguru2
としてユーザーID = 1)は、データベース名が動的に変更されているので
(select ISNULL(strFirstName,'''') as firstname from
TESTDB.dbo.tblSMSecurityUserをIそれができます..
私を助けてください。
に役立ちます。 – PacoDePaco
カーソルはt-sqlの唯一のオプションではありません。 – sapi