Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

INSERT INTO @TABLE EXEC @query dengan SQL Server 2000

N.B. - pertanyaan dan jawaban ini berhubungan dengan SQL Server versi 2000. Di versi yang lebih baru, pembatasan pada INSERT INTO @table_variable ... EXEC ... dicabut sehingga tidak berlaku untuk versi yang lebih baru.

Anda harus beralih ke tabel sementara:

CREATE TABLE #tmp (code varchar(50), mount money)
DECLARE @q nvarchar(4000)
SET @q = 'SELECT coa_code, amount FROM T_Ledger_detail'

INSERT INTO  #tmp (code, mount)
EXEC sp_executesql (@q)

SELECT * from #tmp

Dari dokumentasi:

Sebuah variabel tabel berperilaku seperti variabel lokal. Ini memiliki ruang lingkup yang terdefinisi dengan baik, yang merupakan fungsi, prosedur tersimpan, atau batch di mana ia dideklarasikan.

Dalam ruang lingkupnya, variabel tabel dapat digunakan seperti tabel biasa. Ini dapat diterapkan di mana saja tabel atau ekspresi tabel digunakan dalam pernyataan SELECT, INSERT, UPDATE, dan DELETE. Namun, tabel tidak boleh digunakan dalam pernyataan berikut:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah Mengakhiri Penggunaan menutup Koneksi SQL yang terbuka

  2. Tidak ada kunci utama atau kandidat dalam tabel referensi yang cocok dengan daftar kolom referensi di kunci asing

  3. SQL:Pilih kolom dengan nilai NULL saja

  4. Jalankan perintah Sisipkan dan kembalikan Id yang dimasukkan di Sql

  5. Pilih nilai dari bidang XML di SQL Server 2008