Я делаю полные строки подключения внутри моей процедуры и хотел бы ввести в них имя сервера базы данных. Есть ли способ, которым я могу обнаружить имя изнутри или я обречен на его передачу?
Использование SERVERPROPERTY :
SERVERPROPERTY('MachineName')
SERVERPROPERTY('ComputerNamePhysicalNetBIOS')
SERVERPROPERTY('InstanceName')
Одна вещь, которую я бы рекомендовал против , - это страшная @@ SERVERNAME. Это свойство печально известно тем, что оно перестало синхронизироваться с реальностью после переименования машины. Я видел слишком много приложений, сожженных этой проблемой, чтобы доверять ей. Правильная процедура переименования в BOL, но немногие используют ее правильно: Как: переименовать компьютер, на котором установлен автономный экземпляр SQL Server .
Итак, для 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