Bhuvnesh (11/12/2008)
hi ,Below is the linked server query ,here i m passing the server and linked server name dynamically
The problem is that its giving error for very last line (it is not taking linked server name dynamically)
but if i hard coded the linked server in last line its working
i need to have linked server dynamically
----------------------------------------------------------------------------
declare @servername varchar(20),
@Linked_server varchar(20),
@SQLCmd varchar(200),
@TableName varchar(50)
set @TableName = 'sysobjects'
SELECT @servername = @@servername
IF LEFT(@servername,2) ='D2'
SET @Linked_server = 'IN\DEV'
ELSE
SET @Linked_server = 'D2\DEV'
print @servername
print @Linked_server
SET @SQLCmd = 'SELECT top 10 * from [' + @servername + '].PROD.dbo.' + @TableName + ' WITH (NOLOCK)'
EXEC(@SQLCmd) AT @Linked_server
------------------------------------------------------------------------------
Please help
Use it Like this
------------------------------------------
declare @servername varchar(100),
@Linked_server varchar(100),
@SQLCmd varchar(200),
@TableName varchar(100)
set @TableName = 'sysobjects'
SELECT @servername = @@servername
--IF LEFT(@servername,2) ='D2'
--SET @Linked_server = 'IN\DEV'
--ELSE
SET @Linked_server = '[xx.xxx.x.xxx]'
print @servername
print @Linked_server
SET @SQLCmd = '(''SELECT top 10 * from abc.dbo.' + @TableName + ' WITH (NOLOCK)'') AT ' + @Linked_server
select @SQLCmd = 'EXEC ' + (@SQLCmd)
EXEC(@SQLCmd)
Regards
Ashok