Masalah: Bagaimana anda boleh mengisi jadual sementara dengan hasil prosedur yang disimpan tanpa menentukan skema jadual terlebih dahulu?
Penyelesaian: Leverage fungsi . Fungsi ini melaksanakan pertanyaan jauh dan memasukkan hasilnya secara langsung ke dalam jadual sementara, secara dinamik menyimpulkan struktur jadual dari output pertanyaan. OPENROWSET
<code class="language-sql">-- Sample Stored Procedure CREATE PROC getBusinessLineHistory AS BEGIN SELECT * FROM sys.databases END GO -- Enable Ad Hoc Distributed Queries (required for OPENROWSET) sp_configure 'Show Advanced Options', 1 GO RECONFIGURE GO sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO -- Insert results into temporary table using OPENROWSET SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 'EXEC getBusinessLineHistory') -- Verify the data SELECT * FROM #MyTempTable</code>
). Secara kritis, ia kemudian membolehkan "pertanyaan diedarkan ad hoc" menggunakan getBusinessLineHistory
. Ini adalah prasyarat untuk menggunakan sp_configure
. OPENROWSET
Melaksanakan prosedur yang disimpan dari jauh, dan data yang dikembalikan secara automatik dimasukkan ke dalam OPENROWSET
. Struktur jadual sementara dibuat secara dinamik berdasarkan jenis data yang dikembalikan oleh prosedur yang disimpan. Akhirnya, pernyataan #MyTempTable
mengesahkan penyisipan data yang berjaya. Pendekatan ini mengelakkan keperluan untuk menentukan skema jadual sementara secara manual. SELECT
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Keputusan Prosedur Tersimpan ke dalam Jadual Sementara Tanpa Menentukan Strukturnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!