Sök…


Komma igång

Detta avsnitt beskriver några grundläggande DDL (= " D ata D efinition L anguage") för att skapa en databas, en tabell i en databas, en vy och slutligen en lagrad procedur.


Skapa databas

Följande SQL-kommando skapar en ny databas Northwind på den aktuella servern med hjälp av sökväg 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

Obs: En T-SQL-databas består av två filer, databasfilen *.mdf , och dess transaktionslogg *.ldf . Båda måste specificeras när en ny databas skapas.


Skapa bord

Följande SQL-kommando skapar en ny Categories i den aktuella databasen med schema dbo (du kan växla databaskontext med 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

Skapa vy

Följande SQL-kommando skapar en ny vy Summary_of_Sales_by_Year i den aktuella databasen med schema dbo (du kan växla databaskontext med Use <DatabaseName> ):

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

Detta kommer att gå med i tabeller Orders och [Order Subtotals] att visa kolumnerna ShippedDate , OrderID och Subtotal . Eftersom tabellen [Order Subtotals] har ett tomt namn i namnet i Northwind-databasen, måste det bifogas i fyrkantiga parenteser.


Skapa procedur

Följande SQL-kommando skapar en ny lagrad procedur CustOrdersDetail i den aktuella databasen med schema dbo (du kan växla databaskontext med Use <DatabaseName> ):

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

Denna lagrade procedur, efter att den har skapats, kan åberopas enligt följande:

exec dbo.MyCustOrdersDetail 10248

vilket kommer att returnera alla orderdetaljer med @ OrderId = 10248 (och kvantitet> = 0 som standard). Eller så kan du ange den valfria parametern

exec dbo.MyCustOrdersDetail 10248, 10

som bara returnerar beställningar med en minsta kvantitet på 10 (eller mer).



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow