Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Предаване на DataTable към съхранена процедура като аргумент

Можете да промените съхранената процедура, за да приема таблица стойностен параметър като вход. Първо обаче ще трябва да създадете дефинирана от потребителя таблица TYPE, която съответства на структурата на C# DataTable:

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

Коригирайте своя 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

В C#, когато обвържете таблицата с данни към параметъра PROC, трябва да посочите параметъра като:

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

Вижте също примера тук Предаване на таблица със стойност Параметър към съхранена процедура



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server DATEPART() срещу DATENAME() – Каква е разликата?

  2. Sql сървър - свържете се с удостоверяване на Windows

  3. Превключване на дял в SQL Server (T-SQL)

  4. Достъп до TimeZoneInfo от SQL 2005 Server

  5. загубени прекъсвания на редове в sql сървър