Sto lavorando su una procedura memorizzata che recupera objectGUID dalla directory attiva. Sto memorizzando il risultato in una tabella temporanea e quindi restituendo il valore in un parametro di output per l'uso con altri processi. L'SP verrà chiamato da diverse stored procedure, nonché dalle applicazioni Web PHP, ASP Classic e ASP.Net.
Ho letto QUI che (per quanto riguarda le tabelle temporanee):
Se creati all'interno di una procedura memorizzata, vengono distrutti al completamento della procedura memorizzata. Inoltre, l'ambito di ogni particolare tabella temporanea è la sessione in cui viene creata; nel senso che è visibile solo all'utente corrente. Più utenti potrebbero creare una tabella temporanea denominata #TableX e qualsiasi query eseguita simultaneamente non si influenzerebbe a vicenda: rimarrebbero transazioni autonome e le tabelle rimarrebbero oggetti autonomi. Potresti notare che il nome della mia tabella temporanea di esempio è iniziato con un segno "#".
Sembra che io sia bravo ad andare, ma volevo avere qualche consiglio per assicurarmi che non ci siano gotcha di cui non sono a conoscenza. Ecco la SP.
Grazie in anticipo.
CREATE PROCEDURE stp_adlookup
@user varchar(100),
@objectGUID varbinary(256) OUTPUT
AS
SET NOCOUNT ON;
DECLARE @qry char(1000)
CREATE TABLE #tmp(
objectGUID nvarchar(256)
)
SET @qry = 'SELECT *
FROM openquery(ADSI, ''
SELECT objectGUID
FROM ''''LDAP://mydomaincontroller.com''''
WHERE sAMAccountName = ''''' + @user + '''''
'')'
INSERT INTO #tmp
EXEC(@qry)
SELECT @objectGUID=CAST(objectGUID as varbinary(256)) FROM #tmp;
DROP TABLE #tmp
SET NOCOUNT OFF;
GO