sql >> Databasteknik >  >> RDS >> Sqlserver

Infoga data i SQL Server 2017

Så här infogar du data i en SQL Server 2017-databas med SQL Operations Studio (nu kallad Azure Data Studio).

Det finns många sätt att infoga data i en databas. Metoden du använder kommer till stor del att bero på typen av data, såväl som kontexten med vilken den infogas. Låt oss börja med att infoga data med hjälp av ett SQL-skript.

Infoga data med SQL-skript

Du kan köra ett skript som innehåller all data som ska infogas. Detta är möjligt med SQL INSERT uttalande.

Kör följande skript mot Music databas som vi skapade tidigare:

INSERT INTO Artists (ArtistName, ActiveFrom)
VALUES 
  ('Iron Maiden','1975-12-25'),
  ('AC/DC','1973-01-11'), 
  ('Allan Holdsworth','1969-01-01'),
  ('Buddy Rich','1919-01-01'),
  ('Devin Townsend','1993-01-01'),
  ('Jim Reeves','1948-01-01'),
  ('Tom Jones','1963-01-01'),
  ('Maroon 5','1994-01-01'),
  ('The Script','2001-01-01'),
  ('Lit','1988-06-26'),
  ('Black Sabbath','1968-01-01'),
  ('Michael Learns to Rock','1988-03-15'),
  ('Carabao','1981-01-01'),
  ('Karnivool','1997-01-01'),
  ('Birds of Tokyo','2004-01-01'),
  ('Bodyjar','1990-01-01');

Ovanstående skript infogar data i Artists tabell. Den infogar en ny rad för varje artist.

Kör nu följande sats:

SELECT * 
FROM Artists;

Det uttalandet returnerar innehållet i Artists tabell:

Du kommer att se att ArtistId kolumnen innehåller data även om vi faktiskt inte har lagt till någon data i den kolumnen. Detta beror på att ArtistId är en identitetskolumn (vi använde IDENTITY(1,1) i tabelldefinitionen när vi skapade kolumnen). Identitetskolumnen infogar automatiskt ett ökande värde med varje rad, så vi behöver inte infoga ett värde för den kolumnen – SQL Server gör det åt oss. Vi ställde också in den här kolumnen som den primära nyckeln när vi skapade den, så varje värde är säkert unikt.

Kör nu följande skript:

INSERT INTO Genres (Genre)
VALUES 
  ('Rock'),
  ('Jazz'), 
  ('Country'),
  ('Pop'),
  ('Blues'),
  ('Hip Hop'),
  ('Rap'),
  ('Punk');

INSERT INTO Albums (AlbumName, ReleaseDate, ArtistId, GenreId)
VALUES 
  ('Powerslave', '1984-09-03', 1, 1),
  ('Powerage', '1978-05-05', 2, 1), 
  ('Singing Down the Lane', '1956-01-01', 6, 3),
  ('Ziltoid the Omniscient', '2007-05-21', 5, 1),
  ('Casualties of Cool', '2014-05-14', 5, 1),
  ('Epicloud', '2012-09-18', 5, 1),
  ('Somewhere in Time', '1986-09-29', 1, 1),	
  ('Piece of Mind', '1983-05-16', 1, 1),	
  ('Killers', '1981-02-02', 1, 1),	
  ('No Prayer for the Dying', '1990-10-01', 1, 1),	
  ('No Sound Without Silence', '2014-09-12', 9, 4),	
  ('Big Swing Face', '1967-06-01', 4, 2),	
  ('Blue Night', '2000-11-01', 12, 4),	
  ('Eternity', '2008-10-27', 12, 4),	
  ('Scandinavia', '2012-06-11', 12, 4),	
  ('Long Lost Suitcase', '2015-10-09', 7, 4),	
  ('Praise and Blame', '2010-06-26', 7, 4),	
  ('Along Came Jones', '1965-05-21', 7, 4),	
  ('All Night Wrong', '2002-05-05', 3, 2),	
  ('The Sixteen Men of Tain', '2000-03-20', 3, 2);

Det skriptet infogar data i de andra två tabellerna så att vi har lite data att arbeta med senare när vi kör några frågor.

Direkt input

Vissa GUI-verktyg låter dig mata in data direkt i tabellen via gränssnittet. Så här:

  1. Öppna tabell i redigeringsläge

    Navigera till tabellen du vill ange data i.

    Högerklicka på tabellen och välj Redigera data (eller vad ditt GUI-verktyg än kallar det — SSMS kallar det Redigera topp 200 rader ).

  2. Ange data

    Tabellen öppnas, så att du kan skriva in data direkt i cellerna.

    Du behöver inte ange data i kolumner med automatiskt genererade värden, som identitetskolumner, tidsstämpelkolumner, etc.

    SQL Server kommer vanligtvis att hindra dig från att mata in data i sådana kolumner.

Andra metoder

Här är några andra metoder som kan användas för att fylla en databas med data. Om du kan göra dessa eller inte beror på dina databashanteringsverktyg och/eller miljö.

  • Kopiera/klistra in

    Om du har ett GUI-verktyg som låter dig lägga in data direkt i tabellen, kan du också upptäcka att du också kan kopiera och klistra in data direkt i den tabellen (SSMS stöder detta). Så du kan kopiera all data från ett kalkylblad och sedan klistra in den direkt i databastabellen.

    SQL Server Management Studio (SSMS) låter dig klistra in flera rader med data i en tabell.
  • Importera data

    Vissa verktyg gör att du kan importera en fil som innehåller all data som krävs. Du kan till exempel importera ett Excel-kalkylblad eller en .csv-fil.

    Kommandoradsverktyget BCP är ett populärt verktyg för att göra masskopiering till SQL Server. SQL Server Management Studio har en importguide som hjälper dig genom processen.

    En "Importera platt fil"-guide introducerades i SSMS 17.3. Detta förenklar processen att importera platta filer som .csv och .txt.
  • Webbplats eller annan anpassad applikation

    Nuförtiden är de flesta databaser byggda som en del av backend av en applikation som en webbplats, CRM, ekonomisk applikation, etc. Sådana applikationer gör det vanligtvis möjligt för slutanvändaren att infoga och uppdatera data. Vanligtvis kommer användaren att infoga data via ett formulär. Bakom kulisserna kommer formuläret att infoga data i rätt tabeller i databasen. I det här fallet behöver användaren inte ens veta vilka tabeller som finns i databasen. Allt de ser är formen. Ett formulär kan infoga data i flera tabeller.


  1. Hur summerar man värden för en kolumn i SQL?

  2. Hur omvandlar man en MSSQL CTE-fråga till MySQL?

  3. Använda utdataparametrar för lagrad procedur i C#

  4. Codeigniter-transaktioner