Northwind-Abfragen

benutze Nordwind

/ *

T-SQL (Transactional – Structure Query Language) ist eine Kombination aus drei Sprachstrukturen.

 

  1. DDL: Data Definition Language

— CREATE <Objekttyp> <Objektname> (Builder)

— ALTER <Objekttyp> <Objektname> (Änderungen)

— DROP <ObjectType> <ObName> (Löscht)

 

  1. DML: Data Manipulation Language

— INSERT (Registrierungsanhänge)

— UPDATE (Vorhandenen Datensatz aktualisieren)

— LÖSCHEN (löscht vorhandenen Datensatz)

— SELECT (Gibt Datensätze gemäß den angegebenen Kriterien zurück.)

 

* /

– EINFÜGEN

– INSERT in <TableName> (<ColumnName, <ColumnName2>, <ColumnName>)

Werte (<Wert1>, <Wert2>, <Wert>)

 

INSERT in Produkte (ProductName, UnitPrice, UnitsInStock, Discontinued)

Werte (‚Dry Beans‘, 5,1000,0)

 

 

 

 

– UPDATE <Tabellenname> SET <CollonName1> = <Deger1>,

– <ColumnName2> = <Value2>,

– <ColumnName3> = <Deger3>

– WO <Kriterium>

 

 

 

UPDATE Produkte SET ProductName = ‚Frische Bohnen‘

WO ProductID = 78

 

 

 

– LÖSCHEN VON <Tabellenname> WO <Kriter>

DELETE FROM Products WHERE ProductID = 78

 

 

 

INSERT in Produkte (ProductName, UnitPrice, UnitsInStock, Discontinued)

Werte (‚Dry Beans‘, 5,1000,0)

 

 

 

 

– SELECT <ColumnName1>, <ColumnName2> FROM <TableName> WHERE <Kriterien IF IF>

– SELECT * FROM <Tabellenname> WHERE <Kriterien IF IF> (Gibt alle Spalten zurück ..)

 

 

 

 

SELECT * FROM Mitarbeiter

 

 

SELECT Vorname, Nachname von Mitarbeitern

 

– SELECT <Tabellenname>. <Spaltenname1>, FROM <Tabellenname>. <Spaltenname2> WHERE <Kriterium, falls vorhanden>

– Lang.

 

SELECT Products.ProductName, Products.UnitPrice FROM Products

WO UnitPrice> 100

– Produkte größer als 100 $ ..

 

 

– Name, Preis und Lagerinformationen von Produkten mit einem UnitsInStock-Wert unter 10.

SELECT Products.ProductName, Products.UnitPrice, Products.UnitsInStock FROM Products

WO UnitsInStock <10

 

 

 

 

/ *

  1. Entscheiden Sie, mit welchen Tabellen Sie arbeiten möchten.
  2. Entscheiden Sie, welche Spalte (n) Sie in dieser Tabelle (n) sehen möchten.
  3. Notieren Sie gegebenenfalls Ihre Kriterien.

* /

 

 

 

– Firmenname, Vertretername, Adresse, Stadt, Länderinformationen der Kunden in Brasilien

 

Wählen Sie Firmenname, Kontaktname, Adresse, Stadt, Land von Kunden

wobei Land = ‚Brasilien‘

 

 

 

 

– Kunden nicht in Brasilien

 

Wählen Sie Firmenname, Kontaktname, Adresse, Stadt, Land von Kunden

wo Land! = ‚Brasilien‘

 

 

 

– Meine Kunden in London oder Paris:

SELECT Kunden-ID, Firmenname, Adresse, Stadt VON Kunden

WO Stadt = ‚London‘ ODER Stadt = ‚Paris‘

 

 

– Kunden, die beide Eigentümer von HEM DE ContactTitle mit Wohnsitz in Mexiko sind D.F .:

SELECT CustomerID, CompanyName, ContactTitle, City FROM Kunden

WHERE City = ‚México D.F.‘ AND ContactTitle = ‚Eigentümer‘

 

 

 

– Namen und Preise meiner Produkte beginnend mit C.

 

SELECT ProductName, UnitPrice FROM Products

WO Produktname WIE ‚C%‘

 

– Nicht verkaufte Produktliste

– (Hinweis: Es wird eingestellt = 1)

SELECT ProductName, UnitPrice FROM Products

WO eingestellt = 1

 

 

 

– Mitarbeiter, deren Vorname (Vorname) mit dem Buchstaben ‚A‘ (Mitarbeiter) beginnt; Wenn wir Name, Nachname und Geburtsdatum sehen möchten:

SELECT Vorname, Nachname, Geburtsdatum von Mitarbeitern

WO Vorname wie ‚A%‘

 

 

 

– Firmennamen meiner Kunden mit dem Namen „RESTAURANT“:

SELECT Firmenname VON Kunden

WO Firmenname WIE ‚% RESTAURANT%‘

 

 

 

– Namen und Preise aller Produkte von 50 bis 100 US-Dollar

SELECT ProductName, UnitPrice FROM Products

WO UnitPrice ZWISCHEN 50 UND 100

 

 

 

– Bestellungen (Orders), OrderID (OrderID) und OrderDate (OrderDate) zwischen dem 1. Juli 1996 und dem 31. Dezember 1996

SELECT OrderID, OrderDate FROM Orders

WO Bestelldatum ZWISCHEN ’01 / 07/1996 ‚UND ’31 / 12/1996‘

 

 

– Kunden, deren Land YA Spanien, entweder Frankreich oder Deutschland ist

SELECT Firmenname, Land FROM Kunden

WO Land = ‚Spanien‘ ODER Land = ‚Frankreich‘ ODER Land = ‚Deutschland‘

 

 

 

– Wenn wir ODER zu viel verwendet haben, können wir wie folgt schreiben.

SELECT Firmenname, Land FROM Kunden

WO Land IN („Spanien“, „Frankreich“, „Deutschland“)

 

 

 

– Negativ (NICHT IN)

SELECT Firmenname, Land FROM Kunden

WO Land NICHT IN (‚Spanien‘, ‚Frankreich‘, ‚Deutschland‘)

 

 

 

– Kunden, die ihre Faxnummer nicht kennen

SELECT CustomerID, CompanyName, Fax FROM Kunden

wobei Fax null ist

 

 

 

– ResultSet Sorting:

 

Ich sortiere meine Kunden nach Ländern:

 

SELECT Firmenname, Land FROM Kunden

BESTELLUNG NACH LAND ASC

– asc: Aufstieg (klein bis groß)

– desc: Abstammung (groß bis klein)

– Wir möchten meine Produkte vom teuersten zum billigsten sortieren, daher möchten wir den Produktnamen und den Preis:

SELECT ProductName, UnitPrice FROM Products

BESTELLUNG NACH UnitPrice DESC

 

 

– Lassen Sie meine Produkte von den teuersten bis zu den billigsten rangieren, aber zeigen Sie ihren Bestand von klein bis groß, also wollen wir den Produktnamen und den Preis:

SELECT ProductName, UnitPrice, UnitsInStock FROM Products

–WO können wir ProductName in LIKE ‚C%‘ schreiben.

ORDER BY UnitPrice DESC, UnitsInStock ASC

 

 

– AGGREGATE FUNCTIONS (Funktionen, die Werte zurückgeben. Wie viele Spalten in der Tabelle enthalten sind.)

 

SELECT COUNT (*) FROM Kunden

– Ich habe 91 Kunden ..

 

 

SELECT CategoryID, CategoryName FROM Categories

 

 

SELECT ProductName, CategoryID FROM Products

 

– Wie viele Produkte sind in Kategorie 1 ..?

SELECT COUNT (*) FROM Products

WHERE CategoryID = 1

 

 

 

–COUNT (<ColumnName>): Gibt zurück, wie oft die angegebene Spalte in ResultSet übergeben wurde.

 

 

– Wie viele verschiedene Länder exportiere ich ..?

SELECT COUNT (UNTERSCHIEDLICHES Land) VON Kunden

 

 

– UNTERSCHIEDLICH – Keine Wiederholung geben. 3 Mal anzeigen, wenn Deutschland 3 Mal passt.

 

 

– Welches sind diese Länder ..?

SELECT DISTINCT Country FROM Kunden

 

 

– DISTINCT: ResultSet (Warnung: ResultSet befindet sich auf dem RAM) filtert NUR Daten, indem EINER der sich wiederholenden Daten verwendet wird.

 

 

– Datenfilterung: TOP x

WÄHLEN SIE TOP 3 Firmenname VON Kunden

 

 

– Wenn ich die 5 teuersten Produkte sage

SELECT TOP 5 ProductName, UnitPrice FROM Products

BESTELLUNG NACH UnitPrice Desc

 

 

– Die Anzahl der Bestellungen meines Kunden mit ALFKI CustomerID ..?

– (Aufträge)

SELECT COUNT (*) FROM Orders

WHERE CustomerID = ‚ALFKI‘

 

 

 

– Um die Spalte zu benennen:

SELECT COUNT (*) AS Total Order FROM Orders

WHERE CustomerID = ‚ALFKI‘

 

 

 

SUM (<ColumnName>): Gibt die Summe der angegebenen Spalte in der Ergebnismenge zurück. Es kann nur in numerischen Spalten verwendet werden.

 

 

 

Gesamtkosten meiner Produkte:

SELECT SUM (UnitPrice) TotalPrice FROM Products

 

 

– Wie viel Umsatz hat mein Unternehmen bisher gemacht?

– Quelle: Tabelle mit Bestelldetails

–1-Rabatt (Wir ziehen Rabatte ab.

SELECT SUM (UnitPrice * Quantity * (1-Discount)) Gesamtumsatz FROM [Bestelldetails]

 

 

 

–AVG (<ColumnName>): Gibt den Durchschnitt der in ResultSet angegebenen Spalte zurück:

– Mein durchschnittlicher Produktpreis:

SELECT AVG (UnitPrice) Durchschnitt von Produkten

 

 

 

SELECT Vorname + “ + Nachname als AdSoyad FROM Employees

– MAX und MIN

 

 

SELECT MAX (UnitPrice) FROM Products

 

 

SELECT MIN (UnitPrice) FROM Products

 

 

– Der Name des teuersten Produkts

SELECT ProductName FROM Products

WHERE UnitPrice = (SELECT MAX (UnitPrice) FROM Products)

 

 

 

– Mindestzahlungsauftrag (Quelle: Bestelldetails)

SELECT MIN (UnitPrice * Quantity) FROM [Bestelldetails]

 

 

Die Basis bekommen:

KRAFT AUSWÄHLEN (3.2)

SELECT SQRT (81)

SELECT LEN (‚TRIAL‘)

 

 

– Der am längsten genannte Kunde (Anzahl der Buchstaben) unter meinen Kunden

WÄHLEN SIE MAX (LEN (Firmenname)) VON Kunden

SELECT GETDATE ()

JAHR AUSWÄHLEN (GETDATE ())

SELECT DAY (GETDATE ())

MONAT AUSWÄHLEN (GETDATE ())

 

 

 

– Name, Nachname und Alter meiner Mitarbeiter

SELECT Vorname, Nachname, JAHR (GETDATE ()) – JAHR (Geburtsdatum) als Yas FROM Employees

 

 

 

Foto von Mitarbeitern auswählen

 

 

 

– GROUP BY (Gruppierung)

– Wie viele Stücke wurden von welchem ​​Produkt gekauft?

SELECT ProductID, SUM (Menge) FROM [Bestelldetails]

GRUPPE NACH ProductID

 

 

– Wenn Sie die Aggregatfunktion und eine normale Spalte in einer Abfrage verwenden; In dieser Abfrage muss es GROUP BY sein. Die mit GROUP BY zu verbindende Spalte sind alle Spalten mit Ausnahme der Aggregatfunktion.

SELECT ProductID, SUM (Menge) als Gesamtmenge FROM [Bestelldetails]

GRUPPE NACH ProductID

BESTELLUNG NACH Gesamtmenge DESC

 

 

– Wie viel habe ich insgesamt in welcher Reihenfolge verdient?

– Quellentabelle: Bestelldetails

– Gewünschte Spalten: OrderID und Profit (Stück * Preis)

– Ich habe SUMME: Ich muss GROUP BY verwenden.

SELECT OrderID, SUM (Menge * UnitPrice) FROM [Bestelldetails]

GROUP BY OrderID

 

 

– In welcher Kategorie gibt es insgesamt wie viele Produkte?

SELECT CategoryID, COUNT (ProductID) FROM Products

GRUPPE NACH CategoryID

 

 

– GROUP BY wird nicht verwendet, da MAX und MIN einen einzelnen Wert zurückgeben ..!

SELECT CategoryID, COUNT (ProductID) als Number FROM Products

GRUPPE NACH CategoryID

BESTELLUNG NACH Menge

 

 

 

– HABEN:

– Über 1000 verkaufte Artikel:

SELECT ProductID, SUM (Menge) als SatisPiece FROM [Bestelldetails]

GRUPPE NACH ProductID

SUMME (Menge)> 1000

 

 

– Wenn die Kriterien, die Sie auf eine Ergebnismenge anwenden, mit einer Spalte in der Tabelle verknüpft sind; Sie verwenden WO. Wenn Sie jedoch ein Kriterium auf einen berechneten Wert in RAM anwenden möchten, wird HAVING verwendet.

 

 

– SUB-QUERY (Unterabfragen sind verschachtelte Abfragen)

 

 

 

– Name und Preis meiner Produkte mit einem unterdurchschnittlichen Preis:

– 1. Eine Abfrage, um welche von durchschnittlich zu finden:

SELECT AVG (UnitPrice) FROM Products

 

 

  1. Das Wahlrecht, das dieses Ergebnis als Kriterium verwendet:

SELECT ProductName, UnitPrice FROM Products

WO UnitPrice <(SELECT AVG (UnitPrice) FROM Products)

 

 

 

SELECT COUNT (*) FROM Kunden

SELECT COUNT (DISTINCT CustomerID) FROM Orders

 

 

 

 

– Welche meiner Kunden haben noch nie gehört ..? (89 von 91 bestmöglichen Kunden.)

Richtige Sie Firmenname, Adresse, Stadt, Land von Kunden

WO CustomerID NICHT IN (SELECT DISTINCT CustomerID FROM Orders)

 

 

 

 

Beispiel soll sterben aus Mythos dem folgens werden ohne Illusion, dass das Unterwahlrecht nur nach dem WHERE-Kriterium verwendet wird:

SELECT c.CategoryName + ‚(‚ + CAST ((SELECT COUNT (ProductID) FROM Products)

WHERE CategoryID = c.CategoryID) als NVARCHAR (5)) + ‚)‘ FROM Categories als c

 

 

 

– INNER JOIN

– Der Abfragetyp, die Ergebnismenge nur aus Datensätzen, die Wahrnehmung in Beziehung stehen (MATCH (von PRIMARY KEY mit FOREIGN KEY)):

 

 

SELECT Products.ProductName, Categories.CategoryName FROM Products

INNER JOIN Kategorien

ON Products.CategoryID = Categories.CategoryID

– Welches Produkt gehört zu welcher Kategorie?

 

 

 

INSERT in Categories (CategoryName, Description)

Werte (‚Desserts‘, ‚Milchdesserts‘)

SELECT * FROM Categories

 

 

 

– Welcher Lieferant (Suppliers.CompanyName) liefert welches Produkt (Products.ProductName) ..?

 

SELECT sp.CompanyName, p.ProductName FROM Lieferanten als sp

INNER JOIN Produkte als p

ON sp.SupplierID = p.SupplierID

– p.ProductName = Products.ProductName (Wir haben gekürzt ..)

 

 

 

– Welche Bestellung (Orders.OrderID) wurde mit welcher Reederei (Shippers.CompanyName) versendet, als (Orders.OrderDate) gesendet wurde ..?

 

SELECT Orders.OrderID, Shippers.CompanyName, Orders.OrderDate FROM Shippers

INNER JOIN Bestellungen

ON Shippers.ShipperID = Orders.ShipVia

 

 

– 25.11.2009. Mittwoch

– Welche Bestellung gibt welchen Kunden?

SELECT Customers.CompanyName, Orders.OrderID, Orders.OrderDate FROM Customers

INNER JOIN Bestellungen

– PRIMARY KEY – AUSLÄNDISCHER SCHLÜSSEL

ON Customers.CustomerID = Orders.CustomerID

 

 

– Welcher Mitarbeiter hat GESAMT wie viele Bestellungen erhalten?

– Mitarbeiter, Bestellungen

SELECT Vorname, Nachname, COUNT (OrderID) FROM Orders

INNER JOIN Mitarbeiter

ON Orders.EmployeeID = Employees.EmployeeID

GRUPPE NACH Vorname, Nachname

– Wir haben GROUP BY für die Verwendung von COUNT verwendet.

 

 

 

– Wer hat die meisten Bestellungen angenommen?

SELECT Vorname, Nachname, COUNT (OrderID) AS TotalOrderNumber FROM Orders

INNER JOIN Mitarbeiter

ON Orders.EmployeeID = Employees.EmployeeID

GRUPPE NACH Vorname, Nachname

BESTELLUNG NACH TotalOrderNumber DESC

 

 

 

– MEHRFACHE TABELLENBEZIEHUNGEN

– Welcher Reihenfolge

– Welcher Mitarbeiter,

– Welchen Kunden haben Sie gegeben ..?

SELECT Orders.OrderID, Employees.FirstName, Employees.LastName, Customers.CompanyName FROM Employees

INNER JOIN Bestellungen

ON Employees.EmployeeID = Orders.EmployeeID

INNER JOIN Kunden

ON Customers.CustomerID = Orders.CustomerID

 

 

— Welches Produkt

– In welcher Kategorie ist das?

– Wer liefert dieses Produkt ..?

SELECT Products.ProductName, Categories.CategoryName, Suppliers.CompanyName FROM Products

INNER JOIN Lieferanten

ON Products.SupplierID = Suppliers.SupplierID

INNER JOIN Kategorien

ON Products.CategoryID = Categories.CategoryID

 

 

 

– Welcher Reihenfolge

– welcher Kunde gab,

– Welcher Mitarbeiter hat genommen,

— welches Datum,

– von welcher Kurierfirma

– wie viele wurden von welchem ​​Produkt gekauft,

– zu welchem ​​Preis

– Welche Kategorie ist das Produkt?

– Welcher Lieferant hat dieses Produkt bereitgestellt?

 

WÄHLEN

Orders.OrderID,

Customers.CompanyName,

Employees.FirstName + “ + Employees.LastName as Calisan,

Orders.OrderDate,

Shippers.CompanyName als Fracht,

Produkte.Produktdurchschnitt,

[Bestelldetails] .Menge,

[Bestelldetails] .UnitPrice * (1- [Bestelldetails] .Discount) als Rabatt

Kategorien.Kategorie Durchschnitt,

Suppliers.CompanyName als Lieferant

 

 

VON Mitarbeitern

INNER JOIN Bestellungen

ON Orders.EmployeeID = Employees.EmployeeID

INNER JOIN Kunden

ON Customers.CustomerID = Orders.CustomerID

INNER JOIN Versender

ON Shippers.ShipperID = Orders.ShipVia

INNER JOIN [Bestelldetails]

ON Orders.OrderID = [Bestelldetails] .OrderID

INNER JOIN Produkte

ON Products.ProductID = [Bestelldetails] .ProductID

INNER JOIN Kategorien

ON Categories.CategoryID = Products.CategoryID

INNER JOIN Lieferanten

ON Suppliers.SupplierID = Products.SupplierID

 

 

 

– OUTER JOIN

 

 

SELECT * FROM Categories

INSERT in Categories (CategoryName, Description) -Werte

(‚Desserts‘, ‚Hede Hödö‘)

 

 

 

 

– Kategorien ohne Produkte

SELECT Categories.CategoryName, Products.ProductName FROM Products

RIGHT JOIN Kategorien

ON Products.CategoryID = Categories.CategoryID

WHERE ProductName ist null

 

 

 

– Ich habe 91 Kunden. Nur 89 bestellten es. Finde 2 Personen, die nicht bestellt haben:

 

SELECT Firmenname, Adresse, OrderID FROM Kunden

LEFT JOIN Bestellungen

ON Customers.CustomerID = Orders.CustomerID

WHERE OrderID ist null

 

 

– Das Wort LINKS oder RECHTS bedeutet, wo das Wort „Verbinden“ geschrieben steht.

– LINKS, um alle Datensätze der Tabelle links neben dem Wort JOIN aufzurufen.

– Ich benutze das Wort RECHTS, um nach rechts zu bringen.

 

 

 

 

– Wir haben es wie folgt gefunden.

– Welche meiner Kunden haben noch nie bestellt ..? (89 von 91 bestellten Kunden.)

– Wählen Sie Firmenname, Adresse, Stadt, Land von Kunden

– WO CustomerID NICHT IN (SELECT DISTINCT CustomerID FROM Orders)

 

 

 

 

 

– WELCHE MITARBEITER HABEN ORDENTLICHE GESAMTBESTELLUNG?

– Es gibt zwei verschiedene (unabhängige) Abfragen.

 

STATISTIKZEIT EINSTELLEN

 

SELECT EmployeeID, Vorname, Nachname,

(SELECT COUNT (orderID) FROM Orders WHERE EmployeeID = x.EmployeeID)

VON Mitarbeitern als x

 

 

– UNION (Kombiniert 2 verschiedene Ergebnismengen.)

– Kombiniert zwei oder mehr Tabellen.

Regel: Die Spalten in den beiden Ergebnismengen müssen dieselbe Nummer bzw. denselben Typ haben. (int-string steht nicht auf dem Kopf ..)

 

SELECT Firmenname, Adresse, Stadt, Land, ‚Kunde‘ VON Kunden

UNION

SELECT Firmenname, Adresse, Stadt, Land, ‚Lieferant‘ VON Lieferanten

BESTELLUNG NACH Land

 

– 01.12.2009.

 

STATISTIKZEIT EINSTELLEN

SELECT Products.ProductName, Products.UnitPrice, Categories.CategoryName, Categories.Description FROM Products

CROSS JOIN Kategorien

 

 

– CROSS JOIN Ermöglicht das Anzeigen aller zugehörigen Tabellen (LEFT JOIN, RIGHT JOIN, INNER JOIN, OUTER JOIN). Es hilft uns nur zu berechnen, wie lange die Abfrage in Bezug auf die Zeit gedauert hat.

 

 

 

PRÜFEN und STANDARD Einschränkungen

Verwenden Sie Normalisierung

 

ALTER TABLE Produkte

ADD CONSTRAINT DF_AktifMi

STANDARD 1 für AktifMi

– DF_Discontinued – für Discontinued wäre für Produkte gewesen …

 

 

 

– PRÜFEN

ALTER TABLE Produkte

ADD CONSTRAINT CK_Price

PRÜFEN (Preis> -1)

– Wir können keinen negativen Wert mehr in die Produkttabelle eingeben.

 

 

– INDEX —

 

 

 

benutze Nordwind

GEHEN

SELECT ProductName, UnitPrice FROM Products

WO ProductID = 1

 

 

 

SELECT * FROM Kunden

WO Land = ‚Deutschland‘

– Mein Kunde in Deutschland

– Welche Spalte soll ich indizieren? Wenn wir das Land hier indizieren, wird „Deutschland“ nur in den Ländern gesucht.

 

 

 

CREATE Nonclustered INDEX ix_Ulke

ON Kunden (Land)

 

 

 

– Abfragen werden nach Leerzeichen verlangsamt. Es kann erforderlich sein, den Index in 3-6 Monaten Wartung zu löschen.

– DBCC INDEXDEFRAG

DROP INDEX und erstellen Sie einen neuen INDEX

 

 

 

SELECT * FROM Northwind.dbo.Products

 

 

 

– FQN: VOLLSTÄNDIG QUALIFIZIERTER NAME: LANGER EINDRUCK (Objektname, der alle Objekte vom Server zum Spaltennamen mit Punkt kombiniert):

Beispiel: <Servername>. <Datenbankname>. <Sema-Name>. <Tabellenname>. <Spaltenname>

 

 

 

– Mit FQN Master kann ich meine anderen verbundenen (oder definierten) Server abfragen.

– Wir können IP-Nummer anstelle des Servernamens schreiben …

 

 

CREATE VIEW ProductsGoreSuppliers

WIE

SELECT Produktname, Firmenname, Adresse, Stadt, Land FROM Produkte

INNER JOIN Lieferanten

VORDERSEITE

products.supplierıd = vendor.supplierıd

– Vor dem Erstellen einer Ansicht muss überprüft werden, ob die Abfrage funktioniert oder nicht.

 

 

 

SELECT * FROM ProductsGoreSuppliers

– Daher können wir das WHERE-Kriterium verwenden, da es sich um eine Tabelle handelt.

WO Firmenname WIE ‚E%‘

Bestellung nach Land

 

 

 

SELECT * FROM tumOrderDetails

WHERE OrderID = 10248

BESTELLEN NACH Produktname

 

 

 

 

– In welchen Fällen kann INSERT nicht angezeigt werden:

– 1. Wenn View INNER JOIN enthält (Es gibt eine hintere Tabelle, er weiß nicht, welche er tun soll)

– Wenn alle Spalten in der Ergebnismenge, die als Ergebnis von 2 auftreten, nicht leer übergeben werden können

  1. Wenn eine Ansicht mit der Option OPTION PRÜFEN aufgetreten ist

 

 

CREATE VIEW Deutsch

WIE

WÄHLEN SIE Kunden-ID, Firmenname, Adresse, Stadt, Land VON Kunden

WO Land = ‚Deutschland‘

– Es enthält kein INNER JOIN, es gibt ein Nicht-Null-Feld, dann passt es zur Ansicht. (erfüllte die ersten beiden Bedingungen)

MIT CHECK-OPTION

– Überprüfen Sie den Datensatz während des Einfügens und akzeptieren Sie ihn, wenn er passt.

 

 

 

SELECT * FROM GermanMusti

 

 

 

INSERT in GermanMustiers (Kunden-ID, Firmenname, Adresse, Stadt, Land)

Werte

(„ACTHU“, „ACHTUNG Co.“, „Hede“, „Berlin“, „Deutschland“)

– Hier können wir einfügen, ob wir Sommer in der Türkei hatten. Weil wir das Wo-Kriterium als Deutschland genommen haben. Wenn wir nicht festlegen würden, wo das Kriterium ist, wäre OPTION NICHT PRÜFEN erforderlich.

 

 

 

 

– WITH CHECK OPTION: Wenn die neuen eingehenden Daten den Ansichtsregeln entsprechen sollen, wenn eine INSERT- oder UPDATE-Abfrage für ein Ansichtsobjekt ausgeführt wird; Wir können die Option CHECK OPTION verwenden.

 

 

 

– Wenn wir verschlüsseln wollen; Wir verwenden mit Verschlüsselung. Nach der Verschlüsselung sehen wir es nicht einmal.

CREATE VIEW ProductInformation

mit Verschlüsselung

WIE

SELECT ProductName, UnitPrice FROM Products

 

 

– EINSPRITZUNG

SELECT * FROM Users WHERE Benutzername = “ AND Passwort = “

– Normalerweise ist die Passwortlogik wie oben .. so wird das Passwort unten gebrochen ..

SELECT * FROM Mitarbeiter WHERE Vorname = “ ODER ‚A‘ = ‚A‘ UND Nachname = “ ODER ‚A‘ = ‚A‘

 

‚oder‘ A ‚=‘ A.

 

 

 

– SCHEMABINDING

 

 

 

– SCRIPT und BATCH

– Variablen

 

 

 

DECLARE @Day int

– Wenn ich den Wert der Variablen gebe:

SET @ Number = 5

Drucken (@Sa a)

 

 

 

 

DECLARE @CalisaninName nvarchar (20)

– Wenn der Wert der Variablen durch eine Abfrage kommt:

SELECT @ CalisaninName = Vorname VON Mitarbeitern

WHERE EmployeeID = 1

Drucken (war @calisanina)

 

 

 

 

DECLARE @x int

SET @ x = 8

Drucken (‚Nummer =‘ +

CAST (@x als nchar (2))

)

– Nehmen Sie x konvertieren in 2 Zeichen nchar.

 

 

DECLARE @x int

SET @ x = 8

Drucken (‚Nummer =‘ +

CONVERT (nch (2) @ x)

)

– Holen Sie sich x bis 2 Zeichen nchar. (Genau das gleiche wie oben)

 

 

 

 

– Wie erhalte ich die SON ORDERID-Informationen, sobald ich eine Bestellung aufgebe?

SELECT TOP 1 OrderID FROM Orders

BESTELLUNG NACH OrderID DESC

 

 

 

 

– Wenn ich es Variable werfen will;

DECLARE @ID int

SELECT TOP 1 @ ID = OrderID FROM Orders

BESTELLUNG NACH OrderID DESC

Drucken (@ID)

 

 

 

 

INSERT in Bestellungen (CustomerID, EmployeeID, OrderDate, ShipVia)

Werte (‚ALFKI‘, ‚1‘, GETDATE (), 1)

SELECT @@ IDENTITY

– Globale Variable @@

– Jeder Benutzer kann KEINE globale SQL-Variable definieren

 

 

 

 

INSERT in Bestellungen (CustomerID, EmployeeID, OrderDate, ShipVia)

Werte (‚ALFKI‘, ‚1‘, GETDATE (), 1)

SELECT @@ IDENTITY

Wählen Sie SCOPE_IDENTITY ()

 

 

– WANN / FALL:

 

SELECT Firmenname, Region =

CASA

WENN Region = ‚BC‘ DANN ‚Washington‘

WENN Region = ‚SP‘ DANN ‚Pennsylvania‘

WENN Region = ‚ODER‘ DANN ‚Orlando‘

ENDE

 

VON Kunden

WHERE Region ist nicht null

 

 

 

 

SELECT ProductName, Discontinued =

CASA

WENN eingestellt = ‚0‘ DANN ‚Verkauf gestoppt‘

WENN eingestellt = ‚1‘ DANN ‚Verkauf geht weiter‘

ENDE

 

VON Produkten

 

 

 

– VERSUCHEN – FANGEN –

BEGINNEN SIE VERSUCHEN

SELECT 1/0

END TRY

FANG ANFANGEN

SELECT ERROR_Message ()

END CATCH

 

 

– GESPEICHERTE PROZEDUR —

 

Kategorie PROC ERSTELLEN

WIE

SELECT * FROM Categories

kategoriget ist

 

 

 

 

PROC IDyeGoreUrun ERSTELLEN

@id int

WIE

SELECT ProductName, UnitPrice, UnitsInStock FROM Products

WHERE ProductID = @ id

 

 

IDyeGoreUrun 77

– Es bringt die Informationen des Produkts mit ID 77.

 

 

 

– Normalerweise arbeiten wir beim Hinzufügen eines Produkts wie folgt.

INSERT IN Categories (CategoryName, Description)

Werte (@CategoryName, @ Description)

 

 

– Lassen Sie uns gespeicherte Prozedur machen ..

 

CREATE PROC CategoryAdd

@CategoryName nvarchar (15),

@Beschreibung ntext

WIE

INSERT IN Categories (CategoryName, Description)

Werte (@CategoryName, @ Description)

KategorieAdd ‚Bakery Products‘, ‚Turkish Style Bakery Pastry Donut‘

 

– AUSGEZEICHNETE HAUSARBEIT: Schokolade für alle, die …

– Verfahren, um herauszufinden, wie viel insgesamt (im Preis) der Kunde eingekauft hat, dessen ID angegeben wurde

 

 

SELECT SUM ([Bestelldetails] .UnitPrice * Menge * (1-Rabatt))

VON [Bestelldetails]

INNER JOIN Bestellungen

ON Orders.OrderID = [Bestelldetails] .OrderID

INNER JOIN Kunden

ON Customers.CustomerID = Orders.CustomerID

WHERE Customers.CustomerID = ‚ALFKI‘

 

 

 

— Lassen Sie uns zuerst überprüfen, ob dieser Ort funktioniert und

– Lassen Sie uns Prozedur erstellen

 

 

 

 

PROC erstellen CustomerAlis-Daten

@ID char (5)

WIE

SELECT SUM ([Bestelldetails] .UnitPrice * Menge * (1-Rabatt))

VON [Bestelldetails]

INNER JOIN Bestellungen

ON Orders.OrderID = [Bestelldetails] .OrderID

INNER JOIN Kunden

ON Customers.CustomerID = Orders.CustomerID

WHERE Customers.CustomerID = ‚ALFKI‘

 

CustomerAlis Data ‚OCEAN‘

 

 

 

SELECT CustomerID von Kunden

 

 

– Es ist möglich zu diversifizieren …

PROC erstellen CustomerAlis-Daten

@ID char (5)

WIE

SELECT SUM ([Bestelldetails] .UnitPrice * Menge * (1-Rabatt)) AS Total

VON [Bestelldetails]

INNER JOIN Bestellungen

ON Orders.OrderID = [Bestelldetails] .OrderID

INNER JOIN Kunden

ON Customers.CustomerID = Orders.CustomerID

WO Customers.CustomerID=@ID

GROUP BY Customers.CustomerID, CompanyName

BESTELLUNG NACH Total DESC

 

CustomerAlisData2 ‚SCHNELL‘

 

 

SELECT CustomerID von Kunden

 

– Bestellungen in zwei Datumsbereichen:

 

SELECT OrderID, OrderDate, ShipAddress FROM Orders

WO Bestelldatum ZWISCHEN ’31 / 12/1996 ‚UND ’15 / 07/1997‘

 

 

– Lassen Sie uns eine Prozedur erstellen ..

 

CREATE PROC HistoryDateOrder

@ Date1 smalldatetime,

@ History2 smalldatetime

WIE

SELECT OrderID, OrderDate, ShipAddress FROM Orders

WO Bestelldatum ZWISCHEN @ Datum1 UND @ Datum2

 

Bestellung nach Datum ’01 / 01/1997 ‚, ’06 / 06/1997‘

 

 

– Umsatz nach Jahr

PROC ERSTELLEN YilaGoreCiro

@ Yil int

WIE

SELECT SUM (Menge * Einheitspreis * (1-Rabatt)) AUS [Bestelldetails]

INNER JOIN Bestellungen

ON Orders.OrderID = [Bestelldetails] .OrderID

WO JAHR (Orders.OrderDate)=@Yil

 

YilaGoreCiro 1997

 

 

 

– Welcher Kunde hat den letzten Ausweis?

– Der Mitarbeiter, dessen Ausweis angegeben wurde, der das Produkt am meisten verkauft hat ..?

– Wie lange arbeiten wir schon mit dem Kunden zusammen, dessen ID angegeben wurde?

– Die 5 meistverkauften Produkte in der Kategorie ID angegeben ..?

– Welche Produkte hat der Lieferant, dessen ID mir gegeben wurde ..?

 

 

PROC erstellen Welches Produkt

@ID char (5)

WIE

SELECT TOP 1 Kunden.Firmenname, Produkte.Produktname, [Bestelldetails]. Menge, Bestellungen.Bestelldatum von Kunden

INNER JOIN Bestellungen

ON Customers.CustomerID = Orders.CustomerID

INNER JOIN [Bestelldetails]

ON Orders.OrderID = [Bestelldetails] .OrderID

JOIN-Produkte

ON [Bestelldetails] .ProductID = Products.ProductID

WO Customers.CustomerID=@ID

ORDER BY Orders.OrderDate DESC

 

 

 

Welches Produkt ist ‚QUICK‘

– Wir haben uns die verwandten in der Tabelle angesehen.

 

 

– Flash Disk Felder ..

 

WÄHLEN AUS

 

 

– 1. Bestellungen nur mit diesem Produkt:

CREATE PROC hat dies erhalten

@productID int

WIE

SELECT TOP 5 ProductName, SUM (Menge) als Summe FROM Products

INNER JOIN [Bestelldetails]

ON Products.ProductID = [Bestelldetails] .ProductID

WO

[Bestelldetails] .OrderID

VON

(

SELECT OrderID FROM [Bestelldetails]

WO ProductID = @ productID

)

UND [Bestelldetails] .ProductID! = @ ProductID

GRUPPE NACH Produktname

BESTELLUNG NACH total DESC

 

Sie haben dies in diesem 9 erhalten

 

 

 

 

—– FUNKTIONEN —–

 

– BERECHNEN SIE DIE MwSt. ALLER PREISE IN DER PRODUKTTABELLE

– VERFAHREN

– Wenn wir sagen „BERECHNEN SIE DIE Mehrwertsteuer JEDES WERTES“, SIND FUNKTIONEN .. Ohne an einem Tisch festzuhalten ..

 

 

 

CREATE FUNCTION VATCalculator

(

@ Para Geld

)

RÜCKGABE Geld

WIE

START

DEKLARE @Deger Geld

SET @ Value = @ Money * 1.18

RETURN @Deger

ENDE

 

SELECT ProductName, UnitPrice, dbo.KDVCalculator (UnitPrice) AS VAT Inclusive

 

 

– Die Funktion arbeitet immer nach dem Schema

VON Produkten

 

 

 

– Quadrieren wir die Nummer eines als Parameter eingegebenen int.

 

Holen Sie sich CREATE FUNCTION Frame

(

@ Day int

)

RÜCKGABE int

WIE

START

DECLARE @Sonuc int

SET @ Result = @Say * @Say

RETURN @ Ergebnis

ENDE

 

SELECT dbo.Square (9)

 

 

 

– ODER

 

 

 

Lassen Sie uns das Quadrat CREATE FUNCTION erstellen

(

@x int

)

RÜCKGABE int

WIE

START

 

RETURN @ x * @ x

ENDE

 

SELECT dbo.SquareAlloy (9)

 

 

 

 

– A. AKYILDIRIM

OBER WÄHLEN (‚türkay‘)

UNTER AUSWÄHLEN (‚ABDULLAH‘)

SELECT LEN (‚Dilara‘)

SUBSTRING AUSWÄHLEN (‚Wise Man‘, 1.5)

 

 

 

FUNKTION ERSTELLEN ParafOuptor

(

@Ad nvarchar (50),

@Soyad nvarchar (50)

)

RÜCKGABE nvarchar (100)

WIE

START

DECLARE @donenDeger nvarchar (100)

SELECT @donenDeger = UPPER (SUBSTRING (@ Ad, 1,1)) + ‚.‘ +

OBER (SUBSTRING (@ Nachname, 1.1)) +

UNTER (SUBSTRING (@ name, 2, LAN (@Soyad)))

RETURN @donenDeger

ENDE

 

SELECT dbo.Paraf Creator (‚Ali‘, ‚Akyıldırım‘)

 

 

SELECT TitleOfCourtesy + “ + dbo.ParafRuider (Vorname, Nachname)

VON Mitarbeitern

 

 

 

– ES GIBT ZWEI FUNKTIONSTYPEN; IN-LINE-FUNKTION und MULTI-LINE-FUNKTION.

WIE ES BEDEUTET, GIBT ES NUR EINE LINIE IN DER IN-LINE-FUNKTION. In diesem Fall müssen Sie BEGIN / END STRUCTURE nicht verwenden. ABER MULTI-LINE (SEHR GEFÜTTERT) MUSS MIT EINER FUNKTION BEGINNEN UND MIT ENDE ENDEN.

 

 

 

FUNKTION ERSTELLEN ResultSetOlustur

()

RÜCKGABETABELLE

WIE

RETURN SELECT Firmenname, Land VON Kunden

 

SELECT * FROM dbo.ResultSetOlustur ()

 

 

 

– TRANSAKTION

 

 

 

BEGINNEN SIE VERSUCHEN

END TRY

FANG ANFANGEN

END CATCH

– FORMEN SIE DIESES ..

 

 

BEGINNEN SIE VERSUCHEN

Beginnen Sie mit Tran

– Die Abfrage zum Einfügen, Aktualisieren oder Löschen kann in der Transaktion verwendet werden

tran begehen

END TRY

FANG ANFANGEN

END CATCH

 

 

– Schritt für Schritt Mal sehen, wie es geschrieben steht ..

 

 

 

BEGINNEN SIE VERSUCHEN

Beginnen Sie mit Tran T1

– Die Abfrage zum Einfügen, Aktualisieren oder Löschen kann in der Transaktion verwendet werden

Beginnen Sie mit Tran T2

– Noch eine Abfrage (T1 wird zuerst ausgeführt, dann T2)

tran begehen

tran begehen

END TRY

FANG ANFANGEN

– Wenn ein Fehler auftritt, machen Sie die gesamte Transaktion rückgängig:

ROLLBACK TRAN T1

END CATCH

 

 

 

 

BEGINNEN SIE VERSUCHEN

BEGIN TRAN CategoryAdd

in Kategorien einfügen (CategoryName, Description)

Werte (‚Schuhe‘, ‚Winter / Sommer Männer / Frauen‘)

Beginnen Sie mit Tran UrunSil

AUS Produkten LÖSCHEN, WO ProductID = 1

tran begehen

Tran begehen

END TRY

FANG ANFANGEN

ROLLBACK TRAN CategoryAdd

END CATCH

 

 

 

 

– Für die Datensicherheit, wenn die auszuführende Abfragelogik fortlaufend sein muss:

– (Beispiel: Zuerst Bestellung hinzufügen, dann zu Bestelldetails gehen, Menge hinzufügen und dann Lagerbestand aus der Produkttabelle löschen)

– Verwenden Sie unbedingt den Transaktionsblock!

 

– * DIPNOT: Die bequemste Umgebung für die Verwendung des Transaktionsblocks sind gespeicherte Prozeduren.

 

— TRIGGER (Trigger nach Abfrage INSERT, UPDATE, DELETE) —

 

– BEI BESTELLUNG SCHREIBEN WIR TRIGGER, DIE NICHT AUF LAGER FALLEN.

 

 

 

CREATE TRIGGER tr_AutomaticStock

EIN [Bestelldetails]

für INSERT

– ARBEITEN MIT EINFÜGUNGSANFRAGE, AUSGELÖST MIT EINFÜGENANFRAGE

WIE

– Zweck: Wenn Sie die Bestelldetailtabelle eingeben, suchen Sie die Bestandsinformationen des betreffenden Produkts aus der Produkttabelle und reduzieren Sie sie um die Stückzahl.

DECLARE @UrunID int

– Wir haben eine Variable definiert

DECLARE @Adet int

– Wir sollten eine Variable namens Menge haben, da dies die Anzahl nach Menge reduzieren würde

– Jeder Tabelle sind zwei temporäre Tabellen zugeordnet. Auf diese Tabellen kann außerhalb von Trigger nicht zugegriffen werden. Sie werden als eingefügt und gelöscht bezeichnet.

– INSERTED; Die Zeile, die nach der INSERT-Abfrage auftritt, wird zuerst in der temporären Tabelle INSERTED gespeichert.

– GELÖSCHT; Die zu löschende Zeile wird vor dem Löschen in der temporären Tabelle DELETED gespeichert.

 

 

SELECT @ UrunID = ProductID, @ Qty = Quantity

VON INSERTED

UPDATE-Produkte SET UnitsInStock = UnitsInStock- @ Adet

WHERE ProductID = @ UrunID

 

 

– Nachdem der Trigger erstellt wurde, wird er automatisch aktualisiert, wenn ich die folgenden Abfragen mache.

 

INSERT in [Bestelldetails] (Bestell-ID, Produkt-ID, Menge)

Werte (10323, 1, 2)

 

 

 

SELECT ProductName, UnitsInStock FROM Products

WO ProductID = 1

 

Bedarf: Wenn Sie versuchen, das Produkt aus der Produkttabelle zu löschen, machen Sie die Spalte Auslauf dieses Produkts 1 (dh Nicht löschen, aktualisieren):

 

 

 

CREATE TRIGGER tr_SatisiStop

ON Produkte

STATT löschen

– Lassen Sie den Trigger arbeiten, ohne dass das Löschen ausgeführt werden kann

WIE

– Alle STATT OFs sind in BEGIN – END geschrieben …

– Ich werde Discontinued 1 des Produkts erstellen, das ich löschen möchte:

START

DECLARE @UrunID int

SELECT @ UrunID = ProductID FROM gelöscht

UPDATE Produkte SET Auslauf = 1

WHERE ProductID = @ UrunID

ENDE

 

 

 

SELECT * FROM Products WHERE ProductID = 1

AUS Produkten LÖSCHEN, WO ProductID = 1

 

 

– STATT TRIGGER arbeiten STATT der Triggerabfrage. Das einzige Unterscheidungsmerkmal ist, dass es zwischen BEGIN END-Zeilen geschrieben wird.

 

 

 

— PROBENDATENBANK – FÜR TRIGGER —

 

 

TABELLE ERSTELLEN Studenten

(

StudentNo int,

 

Name nvarchar (50),

Nachname nvarchar (50),

LessonNote tinyint

)

GEHEN

– GO: WEITER ZUM NÄCHSTEN SCHRITT

– TABELLE ÜBERNACHT ERSTELLEN

– ((

– Student No int,

– Ad nvarchar (50),

– Soyd nvarchar (50),

LektionNot tinyint

-)

–GEHEN

– TABELLE ERSTELLEN Verbleibende

– ((

– Student No int,

– Ad nvarchar (50),

– Soyd nvarchar (50),

LektionNot tinyint

-)

 

 

—- Wenn die Kursnote weniger als 50 beträgt, speichern Sie sie für die übrigen, wenn sie mehr als 50 beträgt, speichern Sie sie für die Passanten. Lassen Sie ihn entscheiden.

 

 

 

– TRIGGER ERSTELLEN tr_KararVer

– ON Studenten

– FÜR EINFÜGEN

–Fragen

–DECLARE @No int

– ERKLÄREN SIE @Ad nvarchar (50)

– ERKLÄREN SIE @Soyad nvarchar (50)

–DECLARE @DersNotu tinyint

–SELECT @ No = StudentNo, @ Name = Name, @ Nachname = Nachname, @ CourseNote = CourseNote

– VON EINFÜGEN

—- INSERTED Temporäre Tabelle hat nur 1 Zeile.

–IF @ CourseNote <50

– INSERT in verbleibende Werte (@ No, @ Name, @ Nachname, @ LessonNote)

–ELS zu

– INSERT in Gecenler-Werte (@ No, @ Name, @ Nachname, @ LessonNote)

 

– In Schülerwerte einfügen (1, ‚Mustafa‘, ‚Happy‘, 80)

 

–SELECT * FROM Students

–SELECT * FROM Late

 

 

 

– INSERT in Ogrenciler-Werte (1, ‚Türkay‘, ‚Ürkmez‘, 40)

–SELECT * FROM Students

–SELECT * FROM Verbleibende

 

 

 

 

– SICHERHEIT und LEISTUNG ..

– DBCC-BEFEHLE

DBCC ShowContig (‚Kunden‘)

 

 

 

– Es ist ein netter Befehl, der die Leistungsdetails der in der Datenbank verwendeten Tabellen enthält.

 

 

 

— 08.12.2009.

 

– Sicherungscode

– ALTER DATABASE Northwind

– SET RECOVERY FULL

 

 

 

– Wenn mein Backup oft dasselbe ist, kann ich es in SQL speichern. Es ist nicht notwendig. Es ist einfach zu bedienen.

 

 

 

– Systemverfahren (sp)

 

– SQL kann beim Erstellen eines Backups keinen Ordner erstellen. Erstellen Sie daher einen Ordner mit dem Namen Backup in C und sichern Sie dann.

 

 

 

sp_addumpdevice ‚DISK‘, MyDevice, ‚C: \ Backup \ NWFull.bak‘

 

 

 

SELECT * FROM sys.backup_devices

 

 

 

SICHERUNGSDATENBANK Northwind TO MyDevice

 

 

 

– Wenn es kein Backup ohne Gerät gibt;

SICHERUNGSDATENBANK Northwind TO DISK = ‚C: \ Backup \ NWManuel.bak‘

 

 

 

– Es ist notwendig, die Sicherung regelmäßig durchzuführen. Nun, wenn ich den Unterschied sichern möchte, sollte ich Differencial Backup verwenden, anstatt das Backup am Dienstag am Montag erneut zu erstellen.

 

 

 

INSERT in Northwind.dbo.Products (ProductName, UnitPrice)

Werte (‚Eis‘, 5)

 

 

 

BACKUP-DATENBANK Northwind TO DISK = ‚C: \ Backup \ NWDark.bak‘

MIT UNTERSCHIEDLICHEM

 

 

 

– Warum sollte das Transaktionsprotokoll bereinigt werden? INSERT-, UPDATE- und DELETE-Abfragen

und wenn sie ausgeführt werden, welche Abfrage funktioniert wann und wie

Es wird in der Datenbankdatei mit der Erweiterung .ldf gespeichert. Wir stellen diese Fragen

Jedes Mal, wenn wir es ausführen, wird es in die Protokolldatei verarbeitet. Nach einer Weile

Da Protokolldateien eine übermäßige Schwellung aufweisen, werden diese Abfragen durchgeführt

Geschwindigkeit wird abnehmen. Um diese Geschwindigkeit wieder zu erhöhen, müssen Sie nur LOG BACKUP kaufen.

 

– Sichern wir die LOG-Datei.

UPDATE Northwind.dbo.Products SET UnitPrice = 10

WO ProductID = 81

 

 

 

 

SICHERUNGSPROTOKOLL Northwind TO DISK = ‚C: \ Backup \ LogFile.bak‘

 

 

 

 

– Jede gute Sache hat ein Ende: 😉

TROPFEN-DATENBANK Nordwind

 

 

 

 

Aber einige Dinge können rückgängig gemacht werden:

 

 

 

 

DATENBANK WIEDERHERSTELLEN Northwind FROM DISK = ‚C: \ Backup \ NWFull.bak‘ WITH NORECOVERY

 

 

DATENBANK WIEDERHERSTELLEN Northwind FROM DISK = ‚C: \ Backup \ NWDark.bak‘ WITH NORECOVERY

 

 

WIEDERHERSTELLEN DES LOGS Northwind FROM DISK = ‚C: \ Backup \ LogFile.bak‘ MIT WIEDERHERSTELLUNG

 

 

 

– MIT NORECOVERY und MIT RECOVERY Unterschied;

– Es gibt eine bestimmte Reihenfolge der Sicherung. Wir werden sie alle auf einmal ausführen, aber warten, bis die vollständigen und differenziellen mit dem neuesten LOG wiederhergestellt sind.