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

Bisakah kita menulis sub fungsi atau prosedur di dalam prosedur tersimpan lainnya?

Saya tidak menyarankan melakukan ini karena setiap kali dibuat rencana eksekusi baru harus dihitung, tetapi YA, itu pasti bisa dilakukan (Semuanya mungkin, tetapi tidak selalu disarankan).

Ini contohnya:

CREATE PROC [dbo].[sp_helloworld]
AS
BEGIN
    SELECT 'Hello World'
    DECLARE @sSQL VARCHAR(1000)
    SET @sSQL = 'CREATE PROC [dbo].[sp_helloworld2]
            AS
            BEGIN
                SELECT ''Hello World 2''
            END'
    EXEC (@sSQL)

    EXEC [sp_helloworld2];
    DROP PROC [sp_helloworld2];
END

Anda akan mendapatkan peringatan

The module 'sp_helloworld' depends on the missing object 'sp_helloworld2'.
The module will still be created; however, it cannot run successfully until
the object exists.

Anda dapat mengabaikan peringatan ini dengan menggunakan EXEC('sp_helloworld2') di atas.

Tetapi jika Anda memanggil EXEC [sp_helloworld] Anda akan mendapatkan hasilnya

Hello World
Hello World 2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menghancurkan beberapa data dengan aman menggunakan sql server 2008 ? (menggunakan penghapusan aman DoD atau yang setara)

  2. Cara membuat kolom case sensitif di sql 2005 atau 2008

  3. Buat Pemicu di SQL Server

  4. cara memeriksa keunikan (non duplikasi) dari sebuah posting di rss feed

  5. 3 Digit kode mata uang ke simbol mata uang