Saya sedang mengerjakan prosedur tersimpan yang mengambil objectGUID dari direktori aktif. Saya menyimpan hasilnya dalam tabel temp dan kemudian mengembalikan nilai dalam parameter output untuk digunakan dengan proses lain. SP akan dipanggil dari berbagai prosedur tersimpan serta aplikasi web PHP, ASP Classic dan ASP.Net.
Saya membaca DI SINI bahwa (mengenai tabel temp):
Jika dibuat di dalam prosedur tersimpan mereka dihancurkan setelah menyelesaikan prosedur tersimpan. Selain itu, ruang lingkup dari tabel sementara tertentu adalah sesi di mana ia dibuat; artinya hanya dapat dilihat oleh pengguna saat ini. Beberapa pengguna dapat membuat tabel temporer bernama #TableX dan setiap kueri yang dijalankan secara bersamaan tidak akan memengaruhi satu sama lain - mereka akan tetap menjadi transaksi otonom dan tabel akan tetap menjadi objek otonom. Anda mungkin memperhatikan bahwa nama tabel sementara sampel saya dimulai dengan tanda "#".
Kedengarannya saya baik untuk pergi tetapi saya ingin mendapatkan beberapa saran untuk memastikan tidak ada gotcha yang saya tidak sadari. Inilah SP.
Terima kasih sebelumnya.
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
sumber
dari pengertian luas Anda akan baik-baik saja melakukannya dengan cara ini. Prosedur tersimpan memiliki ruang lingkup terbatas, jadi meskipun (contoh) 3 pengguna menjalankan prosedur tersimpan yang sama dan tabel temp tidak akan saling berbaur, mereka bahkan tidak akan melihat satu sama lain.
Selama Anda tidak perlu berbagi hasil dengan sesi yang berbeda atau pengguna yang menjalankan proses Temp table yang berbeda bisa menjadi cara yang sangat masuk akal.
sumber