我正在我的程序中创建完整的连接字符串,并希望在其中注入数据库服务器的名称。有什么方法我可以从里面检测到这个名字,或者我注定要传递它?
答案 0 :(得分:4)
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。
答案 1 :(得分: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