Je travaille sur une procédure stockée qui récupère le objectGUID du répertoire actif. Je stocke le résultat dans une table temporaire, puis je renvoie la valeur dans un paramètre de sortie pour une utilisation avec d'autres processus. Le SP sera appelé à partir de différentes procédures stockées ainsi que des applications Web PHP, ASP Classic et ASP.Net.
J'ai lu ICI que (concernant les tables temporaires):
S'ils sont créés dans une procédure stockée, ils sont détruits à la fin de la procédure stockée. En outre, la portée d'une table temporaire particulière est la session dans laquelle elle est créée; ce qui signifie qu'il n'est visible que pour l'utilisateur actuel. Plusieurs utilisateurs pourraient créer une table temporaire nommée #TableX et toutes les requêtes exécutées simultanément ne s'influenceraient pas - elles resteraient des transactions autonomes et les tables resteraient des objets autonomes. Vous pouvez remarquer que mon exemple de nom de table temporaire a commencé par un signe "#".
On dirait que je suis prêt à partir, mais je voulais obtenir des conseils pour m'assurer qu'il n'y avait aucun problème que j'ignore. Voici le SP.
Merci d'avance.
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