2010-01-11 105 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 
相关问题