2012-06-01 5 views
2

Je reçois les messages suivant: sp_helpuser et sp_send_dbmail ne sont pas pris en charge sur azure.SQL Server 2008 vers SQL Azure sp_helpuser et sp_send_dbmail

Quelle est la méthode recommandée pour résoudre ce problème?

est ici où ces SPs sont utilisés:

CREATE PROCEDURE [dbo].[aspnet_Setup_RemoveAllRoleMembers] 
    @name sysname 
    AS 
    BEGIN 
    CREATE TABLE #aspnet_RoleMembers 
(
    Group_name  sysname, 
    Group_id  smallint, 
    Users_in_group sysname, 
    User_id   smallint 
) 

INSERT INTO #aspnet_RoleMembers 
EXEC sp_helpuser @name <--here it is 

DECLARE @user_id smallint 
DECLARE @cmd nvarchar(500) 
DECLARE c1 cursor FORWARD_ONLY FOR 
    SELECT User_id FROM #aspnet_RoleMembers 

OPEN c1 

FETCH c1 INTO @user_id 
WHILE (@@fetch_status = 0) 
BEGIN 
    SET @cmd = 'EXEC sp_droprolemember ' + '''' + @name + ''', ''' + USER_NAME(@user_id) + '''' 
    EXEC (@cmd) 
    FETCH c1 INTO @user_id 
END 

CLOSE c1 
DEALLOCATE c1 
END 
GO 

Et l'autre sp:

CREATE PROCEDURE [dbo].[spSendMail] 
@To VARCHAR(200), 
@Subject VARCHAR(200), 
@Body VARCHAR(MAX) = '', 
@From VARCHAR(50) = '[email protected]', 
@format VARCHAR(20) = 'HTML' --HTML 
AS 

DECLARE 
@profile VARCHAR(50) 

select @profile = P.DBMailProfile from tblPaises P INNER JOIN tblParametros PR On P.Codigo = PR.Pais 


EXEC MSDB..sp_send_dbmail @profile_name = @profile, 
     @recipients = '[email protected];[email protected]', 
     [email protected] = @To, 
     [email protected]_address = @From, 
     @subject = @Subject, 
     @Body = @Body, 
     @body_format = @format 
GO 
+0

double possible de [envoyer des messages électroniques à partir d'azur sql] (http://stackoverflow.com/questions/5132200/sending-email-from-sql-azure) – Pondlife

+2

ce Dupliquons pas parce que je demande sp_helpuser –

+0

Avez-vous eu la chance essayer mes suggestions? – AvkashChauhan

Répondre

2

Oui "sp_helpuser" est pas pris en charge dans SQL Azure, donc si vous voulez usurper l'identité d'un autre utilisateur, vous pouvez utiliser "EXECUTE AS USER". Plus de détails sont here.

'msdb.dbo.sp_send_dbmail' n'est pas non plus pris en charge dans SQL Azure, mais voici un blog which has the solution pour vous. Il pourrait y avoir d'autres solutions, mais vous pouvez certainement considérer le meilleur à utiliser.