J'ai essayé et essayé, et je ne peux pas me connecter. Je peux me connecter au serveur à l'aide de SSMS, mais je ne peux pas y accéder depuis un serveur local. Voici mon script (en remplaçant les choses entre parenthèses par des informations pertinentes):
EXEC master.dbo.sp_addlinkedserver
@server = N'[servername].database.windows.net',
@srvproduct = N'Any',
@provider = N'MSDASQL',
@datasrc = N'Azure_ODBC1'
GO
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'[servername]',
@useself = N'False',
@locallogin = NULL,
@rmtuser = N'[username]',
@rmtpassword = '[password]'
GO
Comme spécifié dans ckarst deuxième lien, il existe une solution qui fonctionne. Je le poste ici pour vous éviter d'avoir à le rechercher. Comme suggéré par JuanPableJofre dans cette page Commentaires Azure :
À l'aide de SQL 2014, j'ai pu effectuer une requête distribuée entre un serveur SQL local et un SQL Azure. Tout d'abord, j'ai créé un serveur lié:
Dans les options de sécurité: (*)
Dans SSMS, entrez la requête de test suivante:
use [Local_DB]
go
Select *
from [LinkedServerName].[RemoteDB].[dbo].[Remote_Table]
Cela a fonctionné à merveille !!
Pour résumer, le serveur lié est créé sur votre base de données locale. Le catalogue (nom de la base de données) est important car Azure peut ne pas vous permettre de le spécifier dans une requête (ie: utilisez azureDBName ne fonctionnera pas sur Azure), donc le nom de la base de données doit être dans le catalogue .
Malheureusement, Linked Server n'est pas pris en charge par SQL Azure DB. https://msdn.Microsoft.com/en-us/library/Azure/ee336281.aspx
Cependant, comme vous pouvez le voir sur le lien du forum ci-dessous, Microsoft est au courant du scénario et les commentaires des clients ont été entendus. http://feedback.Azure.com/forums/217321-sql-database/suggestions/402636-cross-database-reference
Bien qu'Azure DB ne prenne pas en charge la définition de serveurs liés, vous pouvez utiliser la fonctionnalité Elastic Query récemment prévisualisée pour définir une "source de données externe" qui n'est qu'une autre base de données Azure DB, et définir des "tables externes" qui sont des références aux tables de cet externe base de données. Vous pouvez ensuite les interroger comme s'il s'agissait d'objets locaux. Ceci est très similaire au concept de serveur lié et est décrit en détail ici .