Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Có thể thực hiện một thủ tục Chèn vào đã lưu trữ không?

Bạn sẽ cần thực hiện một số điều để thực hiện điều này, vì tham số của bạn đang nhận nhiều giá trị, bạn cần tạo Loại bảng và làm cho thủ tục cửa hàng của bạn chấp nhận một tham số thuộc loại đó.

Vì bạn đang chuyển TABLE là một tham số, bạn sẽ cần tạo LOẠI BẢNG như sau

LOẠI BẢNG

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

Quy trình được lưu trữ để chấp nhận thông số loại đó

 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

THỰC HIỆN QUY TRÌNH

Khai báo một biến thuộc loại đó và điền vào các giá trị của bạn.

 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. Chèn dữ liệu thông qua một hàm có giá trị bảng trong SQL Server

  2. Làm thế nào để tạo một dạng xem với 14000 Cột trong đó?

  3. Chuyển bảng dưới dạng tham số vào UDF máy chủ sql

  4. SQL Server 2008 - Tìm kiếm / Sắp xếp Nâng cao

  5. Chọn truy vấn chọn dựa trên mức độ ưu tiên