Estoy trabajando en un procedimiento almacenado que recupera el objectGUID del directorio activo. Estoy almacenando el resultado en una tabla temporal y luego devolviendo el valor en un parámetro de salida para usar con otros procesos. Se llamará al SP desde diferentes procedimientos almacenados, así como desde aplicaciones web PHP, ASP Classic y ASP.Net.
Leí AQUÍ que (con respecto a las tablas temporales):
Si se crean dentro de un procedimiento almacenado, se destruyen al finalizar el procedimiento almacenado. Además, el alcance de cualquier tabla temporal particular es la sesión en la que se crea; lo que significa que solo es visible para el usuario actual. Varios usuarios podrían crear una tabla temporal llamada #TableX y las consultas que se ejecuten simultáneamente no se afectarían entre sí: seguirían siendo transacciones autónomas y las tablas seguirían siendo objetos autónomos. Puede notar que mi nombre de tabla temporal de muestra comenzó con un signo "#".
Parece que estoy listo para ir, pero quería obtener algunos consejos para asegurarme de que no hay problemas que desconozco. Aquí está el SP.
Gracias por adelantado.
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