Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como inserir uma tabela de dados na tabela de banco de dados do SQL Server?


Crie um User-Defined TableType em seu banco de dados:
CREATE TYPE [dbo].[MyTableType] AS TABLE(
    [Id] int NOT NULL,
    [Name] [nvarchar](128) NULL
)

e defina um parâmetro em seu Stored Procedure :
CREATE PROCEDURE [dbo].[InsertTable]
    @myTableType MyTableType readonly
AS
BEGIN
    insert into [dbo].Records select * from @myTableType 
END

e envie sua DataTable diretamente para o servidor sql:
using (var command = new SqlCommand("InsertTable") {CommandType = CommandType.StoredProcedure})
{
    var dt = new DataTable(); //create your own data table
    command.Parameters.Add(new SqlParameter("@myTableType", dt));
    SqlHelper.Exec(command);
}

Para editar os valores dentro do procedimento armazenado, você pode declarar uma variável local com o mesmo tipo e inserir a tabela de entrada nela:
DECLARE @modifiableTableType MyTableType 
INSERT INTO @modifiableTableType SELECT * FROM @myTableType

Em seguida, você pode editar @modifiableTableType :
UPDATE @modifiableTableType SET [Name] = 'new value'