读书人

SELECT @lMaxIndex = Max(lCompanyLog

发布时间: 2012-03-01 10:25:46 作者: rapoo

SELECT @lMaxIndex = Max(lCompanyLogID) from ADCenter1.20070319.dbo.tCompanyLog
declare @LinkServerName nvarchar(100) --数据库名
select @LinkServerName = sDBName from ADCenter1.NDSPrimaryNew.dbo.tServerList where sServerType= '1 '
--取得数据库名称 如:2007019


SELECT @lMaxIndex = Max(lCompanyLogID) from ADCenter1.20070316.dbo.tCompanyLog
print @lMaxIndex

问题:我如何将上句中 20070316 变成我第一句中 @LinkServerName 的变量值


[解决办法]
declare @LinkServerName nvarchar(100),@lMaxIndex varchar(20)
declare @sql nvarchar(1000)

select @LinkServerName = sDBName from ADCenter1.NDSPrimaryNew.dbo.tServerList where sServerType= '1 '

set @sql= 'SELECT @lMaxIndex = Max(lCompanyLogID) from ADCenter1. '+@LinkServerName+ '.dbo.tCompanyLog '

exec sp_executesql @sql,N '@lMaxIndex varchar(20) output ',@lMaxIndex output

print @lMaxIndex
[解决办法]
try

declare @LinkServerName nvarchar(100) --数据库名
select @LinkServerName = sDBName from ADCenter1.NDSPrimaryNew.dbo.tServerList where sServerType= '1 '
--取得数据库名称 如:2007019

Declare @S Nvarchar(4000)
Select @S = N 'SELECT @lMaxIndex = Max(lCompanyLogID) from ADCenter1. ' + @LinkServerName + '.dbo.tCompanyLog '
EXEC sp_executesql @S, N '@lMaxIndex Int output ', @lMaxIndex output
print @lMaxIndex

读书人网 >SQL Server

热点推荐