Suche…


Fertig machen

In diesem Abschnitt werden einige grundlegende DDL- Befehle (= " D ata D efinition L anguage") zum Erstellen einer Datenbank, einer Tabelle innerhalb einer Datenbank, einer Ansicht und schließlich einer gespeicherten Prozedur beschrieben.


Datenbank erstellen

Mit dem folgenden SQL-Befehl wird eine neue Datenbank Northwind auf dem aktuellen Server erstellt. Verwenden Sie hierzu den Pfad C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\ :

USE [master]
GO

CREATE DATABASE [Northwind]
 CONTAINMENT = NONE
 ON  PRIMARY 
 ( 
  NAME = N'Northwind', 
  FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\Northwind.mdf' , SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB 
 )
 LOG ON 
 ( 
  NAME = N'Northwind_log', 
  FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\Northwind_log.ldf' , SIZE = 1536KB , MAXSIZE = 2048GB , FILEGROWTH = 10%
 )
GO

ALTER DATABASE [Northwind] SET COMPATIBILITY_LEVEL = 110
GO

Hinweis: Eine T-SQL-Datenbank besteht aus zwei Dateien, der Datenbankdatei *.mdf und dem Transaktionsprotokoll *.ldf . Beide müssen angegeben werden, wenn eine neue Datenbank erstellt wird.


Tabelle erstellen

Der folgende SQL - Befehl erstellt eine neue Tabelle Categories in der aktuellen Datenbank - Schema mit dbo (Sie Datenbankkontext mit umschalten Use <DatabaseName> ):

CREATE TABLE dbo.Categories(
    CategoryID int IDENTITY NOT NULL,
    CategoryName nvarchar(15) NOT NULL,
    Description ntext NULL,
    Picture image NULL,
      CONSTRAINT PK_Categories PRIMARY KEY CLUSTERED 
      (
         CategoryID ASC
      )
      WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
            ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY
) ON PRIMARY TEXTIMAGE_ON PRIMARY

Ansicht erstellen

Der folgende SQL-Befehl erstellt eine neue Sicht Summary_of_Sales_by_Year in der aktuellen Datenbank mit dem Schema dbo (Sie können den Datenbankkontext mit Use <DatabaseName> wechseln):

CREATE VIEW dbo.Summary_of_Sales_by_Year AS
  SELECT ord.ShippedDate, ord.OrderID, ordSub.Subtotal
  FROM Orders ord
  INNER JOIN [Order Subtotals] ordSub ON ord.OrderID = ordSub.OrderID

Dadurch werden die Tabellen Orders und [Order Subtotals] , um die Spalten ShippedDate , OrderID und Subtotal OrderID . Da die Tabelle [Order Subtotals] in der Northwind-Datenbank ein Leerzeichen enthält, muss sie in eckigen Klammern stehen.


Prozedur erstellen

Der folgende SQL-Befehl erstellt eine neue gespeicherte Prozedur CustOrdersDetail in der aktuellen Datenbank mit dem Schema dbo (Sie können den Datenbankkontext mit Use <DatabaseName> wechseln):

CREATE PROCEDURE dbo.MyCustOrdersDetail @OrderID int, @MinQuantity int=0
AS BEGIN
  SELECT ProductName,
    UnitPrice=ROUND(Od.UnitPrice, 2),
    Quantity,
    Discount=CONVERT(int, Discount * 100), 
    ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2)
  FROM Products P, [Order Details] Od
  WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID 
  and Od.Quantity>=@MinQuantity
END

Diese gespeicherte Prozedur kann nach ihrer Erstellung folgendermaßen aufgerufen werden:

exec dbo.MyCustOrdersDetail 10248

Dabei werden alle Bestelldetails mit @ OrderId = 10248 (und menge> = 0 als Standardwert) zurückgegeben. Oder Sie können den optionalen Parameter angeben

exec dbo.MyCustOrdersDetail 10248, 10

Dadurch werden nur Bestellungen mit einer Mindestmenge von 10 (oder mehr) zurückgegeben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow