sql >> Databáze >  >> RDS >> Sqlserver

Předání DataTable uložené proceduře jako argument

Uloženou proceduru můžete změnit tak, aby přijímala tabulku hodnotný parametr jako vstup. Nejprve však budete muset vytvořit uživatelsky definovanou tabulku TYPE, která odpovídá struktuře C# DataTable:

CREATE TYPE dbo.PersonType AS TABLE
(
    Name NVARCHAR(50), -- match the length of SomeTable.Column1
    Age INT
);

Upravte SPROC:

CREATE PROCEDURE dbo.InsertPerson
    @Person dbo.PersonType READONLY
AS
BEGIN
  INSERT INTO SomeTable(Column1, Column2) 
     SELECT p.Name, p.Age
     FROM @Person p;
END

Když v C# svážete datatable s parametrem PROC, musíte parametr zadat jako:

parameter.SqlDbType = SqlDbType.Structured;
parameter.TypeName = "dbo.PersonType";

Podívejte se také na příklad zde Předání tabulky s hodnotou Parametr k uložené proceduře



  1. Jaké je největší ID číslo, které může autoinkrement vytvořit v mysql

  2. GeoDjango v systému Windows:Nelze najít knihovnu GDAL / OSError:[WinError 126] Zadaný modul nebyl nalezen

  3. počítat nulové položky ve sloupci databáze RESTfull způsobem

  4. Udržování integrity podtřídy v relační databázi