2010-01-11 82 views

回答

4

使用SERVERPROPERTY

  • SERVERPROPERTY('MachineName'):SQL Server主機名的名稱,羣集感知
  • SERVERPROPERTY('ComputerNamePhysicalNetBIOS'):物理機器名稱的名稱。在羣集中,是當前活動節點的名稱。在獨立安裝上,與MachineName相同
  • SERVERPROPERTY('InstanceName'):當前SQL Server實例的名稱。 NULL爲默認值。

我建議的一件事是可怕的@@ SERVERNAME。該屬性在機器重命名後與現實不同步而臭名昭着。我已經看到了太多的應用程序被這個問題摧毀的地方放置它的任何信任。正確的重命名程序在BOL中,但很少使用它:How to: Rename a Computer that Hosts a Stand-Alone Instance of SQL Server

+0

甜!你是對的@@ SERVERNAME沒有給我正確的價值。小跟進:如果我想將域名追加到服務器名稱的末尾,我是否必須遍歷所有AD域並選擇一個我想要的域名,或者如果只有一個域名,是否有更簡單的方法? – Tomasz 2010-01-13 16:16:57

+0

我最近遇到了同樣的問題,找不到合理的解決方案。我最終添加了一個CLR函數到從網絡接口信息返回DNS後綴的數據庫,如http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipinterfaceproperties.dnssuffix(VS 0.85)的.aspx。 – 2010-01-13 23:26:40

2

所以對於MS SQL Server的你可以:

SELECT @@SERVERNAME 

對於MySQL,這是

SELECT variable_value as servername 
FROM information_schema.global_variables 
WHERE variable_name = 'hostname'; 

對於Oracle來說,它的:

SELECT global_name FROM global_name 
相關問題