Я запускаю это из SQL Server 2008 R2.Использование переменной для запроса sys.servers
Возможно ли использовать имя переменной при написании запроса на запрос из sys.servers?
DECLARE @hostname varchar(20)
SET @hostname = '192.168.110.101'
SELECT TOP(10) * FROM [@hostname].databasename.dbo.tablename
возвращение «Не удалось найти сервер„@ имя_узел“в sys.servers. Убедитесь, что правильное имя сервера было указано. При необходимости, выполнить хранимую процедуру sp_addlinkedserver, чтобы добавить сервер в sys.servers.».
Похоже, что он пытается буквально использовать @hostname, а не то, на что фактически установлена переменная. Я также попытался удалить скобки, и это тоже не сработает. Есть идеи?
вам нужно будет выполнить динамический sql. –
Для этого вам понадобится динамический sql. –
Это не работает. Я что-то делаю неправильно: 'code'DECLARE @sql as NVARCHAR (100); 'code'SET @sql = N'SELECT * from [@hostname] .xstore.dbo.trn_trans ' ' code'EXEC sp_executesql @stmt = @sql, @params = N' @ hostname как varchar (25) ', @hostname = '192.168.1.1' – Trinculo