Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Przekazywanie DataTable do procedury składowanej jako argument

Możesz zmienić procedurę składowaną, aby akceptowała tabelę ceniony parametr jako wejście. Najpierw jednak musisz utworzyć zdefiniowaną przez użytkownika tabelę TYPE, która pasuje do struktury C# DataTable:

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

Dostosuj 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

W C#, gdy łączysz tabelę danych z parametrem PROC, musisz określić parametr jako:

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

Zobacz także przykład tutaj Przekazywanie wartości z tabeli Parametr procedury składowanej



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rozwiązania DevOps do automatyzacji tworzenia baz danych

  2. Baza danych [dbName] jest niedostępna. (Eksplorator obiektów)

  3. 3 najważniejsze powody, dla których ludzie przechodzą na SaaS

  4. Łączenie 4 tabel w SQL Server za pomocą Join

  5. Jak mogę rozwiązać problem z pulą połączeń między ASP.NET i SQL Server?