खोज…


शुरू करना

इस खंड में कुछ बुनियादी DDL (= " D ata D efinition 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 । जब एक नया डेटाबेस बनाया जाता है तो दोनों को निर्दिष्ट करने की आवश्यकता होती है।


तालिका बनाएं

निम्न एसक्यूएल कमांड वर्तमान डेटाबेस में एक नया टेबल Categories बनाता है, स्कीमा dbo का उपयोग करके (आप Use <DatabaseName> साथ डेटाबेस संदर्भ स्विच कर सकते हैं 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 कमांड एक नया दृश्य Summary_of_Sales_by_Year बनाता है, मौजूदा डेटाबेस में Summary_of_Sales_by_Year स्कीमा dbo (आप उपयोग कर सकते हैं डेटाबेस संदर्भ का 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] स्तंभ प्रदर्शित करने ShippedDate , OrderID और Subtotal । क्योंकि टेबल [Order Subtotals] के नॉर्थविंड डेटाबेस में इसके नाम में एक रिक्त है, इसे वर्ग कोष्ठक में संलग्न करने की आवश्यकता है।


प्रक्रिया बनाएँ

निम्न SQL कमांड एक नया संग्रहीत कार्यविधि बनाता है वर्तमान डेटाबेस में CustOrdersDetail , स्कीमा dbo का उपयोग करके (आप डेटाबेस संदर्भ को 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

जो @ ऑर्डरआईड = 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