Saya memiliki variabel tabel dalam skrip (bukan prosedur tersimpan). Dua pertanyaan:
- Bagaimana cara menghapus variabel tabel? Drop Table @ varName memberikan kesalahan "snytax salah".
- Haruskah saya selalu melakukan ini? Saya dengar ini praktik yang baik. Apakah benar-benar perlu untuk skrip kecil seperti ini?
Ini kode saya:
Declare @projectList table(
name varchar(40) NOT NULL);
Insert Into @projectList
Values ('BCR-00021')
Select *
From @projectList
Drop Table @projectList -- does not work
sql
sql-server
table-variable
jtpereyda.dll
sumber
sumber
Jawaban:
Variabel tabel secara otomatis lokal dan otomatis dihapus - Anda tidak perlu mengkhawatirkannya.
sumber
Variabel tabel seperti variabel int atau varchar.
Anda tidak perlu menjatuhkannya. Mereka memiliki aturan cakupan yang sama dengan variabel int atau varchar
sumber
jika orang lain menemukan ini ... dan Anda benar-benar perlu melepaskannya seperti saat berada dalam satu lingkaran, Anda dapat menghapus semua dari variabel tabel:
sumber
Tetapi Anda semua lupa menyebutkan, bahwa jika tabel variabel digunakan dalam satu loop, maka perlu dikosongkan (hapus @table) sebelum memuat data lagi dalam satu loop.
sumber
Sama Seperti TempTables, variabel tabel lokal juga dibuat di TempDB. Ruang lingkup variabel tabel adalah batch, prosedur tersimpan dan blok pernyataan di mana ia dideklarasikan. Mereka dapat dikirimkan sebagai parameter antar prosedur. Mereka secara otomatis terhapus saat Anda menutup sesi tempat Anda membuatnya.
sumber
Inilah solusinya
Berfungsi dengan baik di SQL Server 2014 Christophe
sumber