Определить версию SQL Server связанного сервера - PullRequest
2 голосов
/ 04 июня 2009

Кто-нибудь здесь знает, как я могу определить версию SQL, работающую на моем связанном сервере, с помощью операторов TSQL?

Я использую SQL2005, мои связанные серверы работают под управлением SQL2000, 2005 и 2008.

Ответы [ 5 ]

9 голосов
/ 04 июня 2009
select * from openquery(MyLinkedServer,'SELECT SERVERPROPERTY(''productversion'')')

Работает

4 голосов
/ 05 июня 2009

Один незначительный недостаток OPENQUERY заключается в том, что нельзя использовать что-либо, кроме строковых литералов, как для сервера, так и для запроса.

С EXEC AT вы можете, по крайней мере, использовать переменные varchar для запроса (хотя это может быть затруднительно, правильно указывать содержимое), но не для имени сервера:

Declare @Sql AS varchar (max) = 'ВЫБРАТЬ СЕРВЕРНАЯ СОБСТВЕННОСТЬ (' 'версия продукта' ')' EXEC (@sql) НА MyLinkedServer

Я предполагаю, что это всего лишь ограничение синтаксического анализатора, а не какое-то преднамеренное ограничение в дизайне.

0 голосов
/ 06 апреля 2016

Вы можете получить доступ к @@ версии через связанный сервер, используя OPENQUERY

SET @sql = 'SELECT * FROM OPENQUERY ([' + @ имя_сервера + '],' 'select @@ VERSION' ')'

0 голосов
/ 13 октября 2009

Также вы можете попробовать:

exec master..xp_msver
0 голосов
/ 04 июня 2009
SELECT @@VERSION

Возвращает строку с подробным описанием версии сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...