2009-06-04 43 views
2

有没有人知道我可以通过使用TSQL语句来确定在我的链接服务器上运行的SQL版本?确定SQL Server版本的链接服务器

我运行SQL2005我的链接的服务器正在运行SQL2000,2005年的混合和2008年

回答

8
select * from openquery(MyLinkedServer,'SELECT SERVERPROPERTY(''productversion'')') 

作品

+0

正确,这确实工作完美。从来没有想过公开查询。 Thanx – Coentje 2009-06-04 10:29:55

0
SELECT @@VERSION 

返回一个字符串,详细介绍了服务器的版本。

+0

@@版本只能在本地服务器上工作,而不能在连接的服务器上工作 – Coentje 2009-06-04 09:43:51

+0

与SERVERPROPERTY('productversion')相同 – Coentje 2009-06-04 09:44:08

4

约OPENQUERY一个小小的鸡蛋里挑骨头是一个不可以用多字符串文字以外的任何服务器和查询两种。

随着EXEC AT可以为查询至少使用VARCHAR变量(尽管它可以正确地引用东西痛)虽然没有服务器名:

声明@sql为varchar(最大值) ='SELECT SERVERPROPERTY(''productversion'')' EXEC(@sql)AT MyLinkedServer

我认为这只是解析器的限制,而不是设计中的一些故意限制。

0

你也可以试试:

exec master..xp_msver 
0

可以使用OPENQUERY

SET @sql通过链接服务器访问@@版本= 'SELECT * FROM OPENQUERY([' + @服务器+'], ''select @@ VERSION'')'