Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या संग्रहीत प्रक्रिया में सम्मिलित करना संभव है?

इसे चालू करने के लिए आपको कुछ चीजें करने की आवश्यकता होगी, क्योंकि आपके पैरामीटर को कई मान मिल रहे हैं, आपको एक टेबल प्रकार बनाने और अपनी स्टोर प्रक्रिया को उस प्रकार के पैरामीटर को स्वीकार करने की आवश्यकता है।

चूंकि आप एक TABLE पास कर रहे हैं एक पैरामीटर के रूप में आपको एक टेबल टाइप कुछ इस प्रकार बनाना होगा

टेबल प्रकार

CREATE TYPE dbo.Prco_Table AS TABLE 
 (
    [Val1]         Data Type
    [Val2]         Data Type
  )
 GO

उस प्रकार के परम को स्वीकार करने की संग्रहीत प्रक्रिया

 CREATE PROCEDURE mainValues 
 @TableParam Prco_Table READONLY   --<-- Accepts a parameter of that type 
 AS                                  -- Note it is ReadOnly 
 BEGIN
    SET NOCOUNT ON;
  /* do your insert from this parameter or other cool stuff  */

  INSERT INTO Target_Table (Col1, Col2)
  SELECT [Val1] , [Val2]
  FROM  @TableParam    --<-- Table Type variable


END

प्रक्रिया निष्पादित करें

उस प्रकार का एक वैरिएबल घोषित करें और उसे अपने मानों से भर दें।

 DECLARE @Table ClaimData(      --<-- Declare a variable of your type
          [Val1]         Data Type
          [Val2]         Data Type
                         ); 

 -- Populate the variable
   INSERT INTO @Table ([Val1],[Val2])
   SELECT testdesc, testoption
   FROM tableA
   WHERE testoption = 1

  EXECUTE mainValues  @Table --<-- Pass this variable of Table Type


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक समूह के भीतर संयोजन संयोजन

  2. DACFx 3.0 API के साथ DACPAC का उन्नयन - किसी मौजूदा डेटाबेस के वर्तमान DAC संस्करण का निरीक्षण कैसे करें?

  3. SQL सर्वर FILESTREAM सीमा

  4. OLE DB प्रदाता Microsoft.ACE.OLEDB.12.0 लिंक किए गए सर्वर के लिए (शून्य) लौटाया गया संदेश बुकमार्क अमान्य है।

  5. java.sql.SQLException:jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:sqlserver