sql >> Databasteknik >  >> RDS >> Sqlserver

Hur infogar man en datatabell i SQL Server-databastabellen?

Skapa en User-Defined TableType i din databas:

CREATE TYPE [dbo].[MyTableType] AS TABLE(
    [Id] int NOT NULL,
    [Name] [nvarchar](128) NULL
)

och definiera en parameter i din Stored Procedure :

CREATE PROCEDURE [dbo].[InsertTable]
    @myTableType MyTableType readonly
AS
BEGIN
    insert into [dbo].Records select * from @myTableType 
END

och skicka din DataTable direkt till sql-server:

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);
}

För att redigera värdena i den lagrade proceduren kan du deklarera en lokal variabel med samma typ och infoga indatatabell i den:

DECLARE @modifiableTableType MyTableType 
INSERT INTO @modifiableTableType SELECT * FROM @myTableType

Sedan kan du redigera @modifiableTableType :

UPDATE @modifiableTableType SET [Name] = 'new value'


  1. Hur ändrar man schemat för flera PostgreSQL-tabeller i en operation?

  2. SQLite CASE

  3. Hur hämtar man en uppsättning tecken med SUBSTRING i SQL?

  4. Hur man bakåtkonstruerar en databas i MySQL Workbench