サーチ…


入門

このセクションでは、データベース、データベース内のテーブル、ビュー、そして最後にストアドプロシージャを作成するための基本的なDDL (= " D ata D defining L anguage")コマンドについて説明します。


データベースの作成

次のSQLコマンドは、 C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\パスを使用して、現在のサーバーに新しいデータベースNorthwindを作成します。

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

注: T-SQLデータベースは、データベースファイル*.mdfとトランザクションログ*.ldfという2つのファイルで構成されています。新しいデータベースが作成されるときに両方を指定する必要があります。


テーブルの作成

次のSQLコマンドは、スキーマdbo (データベースコンテキストをUse <DatabaseName>Use <DatabaseName>切り替えることができます)を使用して、現在のデータベースに新しいテーブルCategories作成します。

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

ビューの作成

次のSQLコマンドは、スキーマdboを使用して現在のデータベースに新しいビューSummary_of_Sales_by_Year作成します( Use <DatabaseName>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

これは、テーブルに参加しますOrdersし、 [Order Subtotals]列を表示するためにShippedDateOrderID及びSubtotal 。テーブル[Order Subtotals]は、Northwindデータベースの名前に空白が含まれているため、角括弧で囲む必要があります。


プロシージャの作成

次のSQLコマンドは、スキーマdboを使用して現在のデータベースに新しいストアドプロシージャCustOrdersDetail作成します( Use <DatabaseName>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

このストアドプロシージャは、作成後に次のように呼び出すことができます。

exec dbo.MyCustOrdersDetail 10248

@ OrderId = 10248(デフォルトでquantity> = 0)ですべての注文詳細が返されます。または、オプションのパラメータを指定することもできます

exec dbo.MyCustOrdersDetail 10248, 10

最小数量10(またはそれ以上)の注文のみが返されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow