Je souhaite demander le nom de service d'un serveur SQL. Habituellement, je le fais avecDéterminez @@ nom_service sur SQL Server et l'erreur de capture est levée par Azure
SELECT @@SERVICENAME
Mais cela ne fonctionne pas sur les bases de données hébergées Azure. Je cherche un moyen de déterminer le nom du service, avec un try catch fallback si je suis connecté à une base de données azur. La prise d'essai habituelle ne fonctionne pas pour moi - en raison de l'erreur de compilation pour l'instruction. Comment puis-je attraper cette erreur de compilation?
Essayez 'DECLARE @T TABLE (ServiceName NVARCHAR (255)) ; INSERT @T (ServiceName) EXEC ('SELECT @@ SERVICENAME') '. Cela donnera toujours une erreur, mais je pense que vous pouvez au moins attraper celui-là. –
Oh, et que diriez-vous de 'SERVERPROPERTY ('ServerName')'? Cela ne devrait pas donner une erreur de compilation et retourner juste 'NULL' sur Azure. Split sur la barre oblique inverse comme requis. –
SELECT SERVERPROPERTY ('Edition') renvoie "SQL Azure" sur Azure, cette partie fonctionne correctement. – Gerd