2009-06-04 45 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'')'