تولید اسکریپت دیتابیس در SQL Server

شنبه 18 اردیبهشت 1395

یک برنامه نویس نیاز دارد چندین بار داده های دیتابیس را در مراحل مختلف تولید برنامه جابه جا کند. با تولید اسکریپت این کار به راحتی صورت میپذیرد.برای این منظور در این مقاله قصد داریم تولید اسکریپت در SQL Server را آموزش دهیم.

 تولید اسکریپت دیتابیس  در SQL Server

یک برنامه نویس باید چندین بار داده ها را از  development سرور  به staging سرور  و بعد از آن به production سرور  حرکت دهد.با تولید اسکریپت این کار به راحتی صورت میپذیرد.

مرحله 1 :

روی دیتابیس راست کلیک کرده، گزینه Tasks و سپس روی Generate Scripts کلیک میکنیم.

مرحله 2 :

 صفحه بعدی،  صفحه Introduction است ،که چهار مرحله زیر را  توضیح می دهد،

Select Database Object

Specifying scripting or publishing options

Review your selection

Generate Scripts and save or publish

روی Next کلیک کنید.

مرحله 3 :

Choose Objects؛ در اینجا شما می توانید تمام جداول و stored procedure ها، و ... را انتخاب کنید و یا شما می توانید جداول خاص و یاstored procedure خاص  را انتخاب کنید. بر روی دکمه Next کلیک کنید.

مرحله 4:

Set Scripting Options ,شما می توانید نوع خروجی را  "Save scripts to a specific location"  و یا "Publish to web service ،"  را در اینجا انتخاب کنید.ما گزینه اول را انتخاب میکنیم.  نام فایل و محل ذخیره اسکریپت را انتخاب کنید.

 حالا روی Advanced کلیک کنید.

از تب option میتوانید پروپرتی هایی مانند Script for Server Version را انتخاب کنید.

 نسخه سروری که  برای اجرای اسکریپت می خواهید را انتخاب کنید، در اینجا  SQL Server 2012  انتخاب شده است.

 از Type of data to script ،گزینه Schema and data هم داده ها و هم شمایی از دیتابیس دارد و  اگر فقط اطلاعات را میخواهید گزینه Data only را انتخاب کنید

Schema Only فقط شی اسکریپت ایجاد میکند

مرحله 5 :

در  Summary ، فقط مسیر را چک کنید و برروی  'Next' کلیک کنید.

مرحله 6 :

Save or Publish Scripts ، در اینجا موفقیت آمیز بودن یا نبودن  تمام اکشن ها چک میشوند .روی 'Finish'. کلیک کنید.

مرحله 7:

 فایل اسکریپت را باز کرده  و در SQL Server Query Window اجرا میکنیم . برای درک بهتر ، اسکریپت زیر را ایجاد کرده ایم.

    USE [EMP]  
    GO  
    /****** Object:  StoredProcedure [dbo].[ViewCountry]    Script Date: 28-02-2016 17:39:44 ******/  
    SET ANSI_NULLS ON  
    GO  
    SET QUOTED_IDENTIFIER ON  
    GO  
    -- =============================================  
    -- Author:      <Author,,Name>  
    -- Create date: <Create Date,,>  
    -- Description: <Description,,>  
    -- =============================================  
    CREATE PROCEDURE [dbo].[ViewCountry]  
    AS  
    BEGIN  
        -- SET NOCOUNT ON added to prevent extra result sets from  
        -- interfering with SELECT statements.  
        SET NOCOUNT ON;  
      
        SELECT [CountryId]  
          ,[CountryName]  
      FROM [EMP].[dbo].[Country]  
    END  
      
    GO  
    /****** Object:  Table [dbo].[Country]    Script Date: 28-02-2016 17:39:44 ******/  
    SET ANSI_NULLS ON  
    GO  
    SET QUOTED_IDENTIFIER ON  
    GO  
    CREATE TABLE [dbo].[Country](  
        [CountryId] [int] IDENTITY(1,1) NOT NULL,  
        [CountryName] [nvarchar](50) NULL,  
     CONSTRAINT [PK_Country] PRIMARY KEY CLUSTERED   
    (  
        [CountryId] ASC  
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]  
    ) ON [PRIMARY]  
      
    GO  
    /****** Object:  Table [dbo].[State]    Script Date: 28-02-2016 17:39:44 ******/  
    SET ANSI_NULLS ON  
    GO  
    SET QUOTED_IDENTIFIER ON  
    GO  
    CREATE TABLE [dbo].[State](  
        [StateId] [int] IDENTITY(1,1) NOT NULL,  
        [CountryId] [int] NULL,  
        [StateName] [nvarchar](100) NULL,  
     CONSTRAINT [PK_State] PRIMARY KEY CLUSTERED   
    (  
        [StateId] ASC  
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]  
    ) ON [PRIMARY]  
      
    GO  
    SET IDENTITY_INSERT [dbo].[Country] ON   
      
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (1, N'INDIA     ')  
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (2, N'USA       ')  
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (3, N'UK        ')  
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (4, N'NEW ZEALAND')  
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (5, N'AUSTRALIA')  
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (6, N'SA')  
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (7, N'SRI LANKA')  
    INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (8, N'test')  
    SET IDENTITY_INSERT [dbo].[Country] OFF  
    SET IDENTITY_INSERT [dbo].[State] ON   
      
    INSERT [dbo].[State] ([StateId], [CountryId], [StateName]) VALUES (1, 1, N'GUJARAT')  
    INSERT [dbo].[State] ([StateId], [CountryId], [StateName]) VALUES (2, 1, N'MAHARASHTRA')  
    INSERT [dbo].[State] ([StateId], [CountryId], [StateName]) VALUES (3, 4, N'AUCKLAND')  
    SET IDENTITY_INSERT [dbo].[State] OFF  
    ALTER TABLE [dbo].[State]  WITH CHECK ADD  CONSTRAINT [FK_State_Country] FOREIGN KEY([CountryId])  
    REFERENCES [dbo].[Country] ([CountryId])  
    GO  
    ALTER TABLE [dbo].[State] CHECK CONSTRAINT [FK_State_Country]  
    GO   

آموزش نصب sql server 2017

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید