수색…


시작하기

섹션은 기본적인 DDL (= "D ATA D efinition 리터 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 의 두 파일로 구성됩니다. 새 데이터베이스를 만들 때 둘 다 지정해야합니다.


표 만들기

다음 SQL 명령은 스키마 dbo 사용하여 현재 데이터베이스에 Categories 테이블을 새로 만듭니다 ( 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

보기 만들기

다음 SQL 명령은 스키마 dbo 사용하여 현재 데이터베이스에 Summary_of_Sales_by_Year 뷰를 새로 만듭니다 ( 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] 이 조인되어 ShippedDate , OrderIDSubtotal 열이 표시됩니다. 테이블 [Order Subtotals] 의 이름은 Northwind 데이터베이스에서 비어 있으므로 대괄호로 묶어야합니다.


프로 시저 만들기

다음 SQL 명령은 스키마 dbo 사용하여 현재 데이터베이스에 새 저장 프로 시저 CustOrdersDetail 을 만듭니다 ( 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 (및 수량> = 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