zoukankan      html  css  js  c++  java
  • SQL Server 数据库项目

    ylbtech-.NET Framework: SQL Server 数据库项目

    SQL Server 数据库项目

    类型:SQL Server

    用于创建 SQL Server 数据库的项目

    1. 新建“SQL Server 数据库项目”返回顶部
    1-1、新建SQL Server 数据库项目,名称为“YlbTech.DataBase”

    1-2、创建后

    1-2-1、创建后数据库项目  1-2-2、项目右键-->添加-->添加项菜单  
       

    1-2、项目右键,新建文件夹“Tables”

    2. 在Tables文件夹上,新建 Categories 和 Products 表返回顶部
    2-0、Categories表 和 Products表 SQL脚本
    go
    -- =============================================
    -- 2,类别
    -- =============================================
    create table Categories
    (
    CategoryID int identity(1,1) primary key,   --类别ID  [PK]
    CategoryName nvarchar(15) not null, --类别名称
    [Description] ntext,                --说明
    Picture image                       --图片
    )
     
    go
    -- =============================================
    --3,产品 
    -- =============================================
    create table Products
    (
    ProductID int identity primary key, --产品ID『PK』
    ProductName nvarchar(40) not null,  --产品名称
    CategoryID int foreign key references Categories(CategoryID),                   --类别ID
    QuantityPerUnit nvarchar(20),   --单位数量
     
    UnitPrice money,            --单价
    UnitsInStock smallint default(0) check(UnitsInStock>=0),     --库存量
    UnitsOnOrder smallint default(0) check(UnitsOnOrder>=0),     --订购量
    ReorderLevel smallint default(0) check(ReorderLevel>=0),     --再订购量
    Discontinued bit            --中止:0=正常;1=中止
    )
    View Code
    2-1、创建“Categories”表
    2-1-2、新建“Categories表”后的界面

    2-1-3、创建后的“Categories表”

    2-1-3-1、Categories表创建后的生成的脚本

    CREATE TABLE [dbo].[Categories]
    (
        [CategoryId] INT NOT NULL IDENTITY , 
        [CategoryName] NVARCHAR(50) NULL, 
        [Description] NTEXT NOT NULL, 
        [Picture] IMAGE NOT NULL, 
        CONSTRAINT [PK_Categories] PRIMARY KEY ([CategoryId]) 
    )
    
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'类别ID',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Categories',
        @level2type = N'COLUMN',
        @level2name = N'CategoryId'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'类别名称',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Categories',
        @level2type = N'COLUMN',
        @level2name = N'CategoryName'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'秒杀',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Categories',
        @level2type = N'COLUMN',
        @level2name = N'Description'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'图片',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Categories',
        @level2type = N'COLUMN',
        @level2name = N'Picture'
    Categories SQL
    2-2、
    2-3、
    3. 添加/删除约束返回顶部
    3-1、 添加自增长标识
    3-2、 添加主键
    3-2-2、添加主键  3-2-3、删除主键  
     
    3-3、 添加外键
    3-3-1、添加外键

    3-3-2、添加“CategoryID”外键关联Categories表的CategoryId列

    3-4、 添加检查约束
    3-4-1、添加检查约束

    3-4-2、为“UnitsInOrder”添加检查约束,值应大于等于0

    3-5、 添加默认值
    3-6、 是否允许为空
    3-7、
    4. 列属性1返回顶部
    4-1、
         
    4-2、
    5. 比较架构返回顶部
    5-1、项目右键,选择“架构比较”
    5-1-1、 SQL架构比较窗口

    5-1-1-1、单机“选择目标...”出现窗口如下:

    5-1-1-2、单机“选择连接...”出现窗口如下:

         
     
    5-1-1-2-1、高级属性
         
     
         
       
    5-1-3、数据库连接成功
    5-2、 “比较”架构
     
    5-3、“更新”架构
    图-1  
     
    图-2  
     
    5-4、“更新”架构成功
    5-4-1、查看预览
    ** 警告
         将 SQL Server 2016 指定为目标平台的项目可能遇到与 SQL Server 2014 有关的兼容性问题。
         项目和目标数据库的排序规则设置不同。可能会发生部署错误。
         将 SQL Server 2016 指定为目标平台的项目可能遇到与 SQL Server 2014 有关的兼容性问题。
         项目和目标数据库的排序规则设置不同。可能会发生部署错误。
    
    ** 突出显示
         将重新生成的表
           无
         将删除的聚集索引
           无
         将创建的聚集索引
           无
         可能的数据问题
           无
    
    ** 用户操作
         创建
           [dbo].[Categories] (表)
           [dbo].[Categories].[CategoryId].[MS_Description] (扩展属性)
           [dbo].[Categories].[CategoryName].[MS_Description] (扩展属性)
           [dbo].[Categories].[Description].[MS_Description] (扩展属性)
           [dbo].[Categories].[Picture].[MS_Description] (扩展属性)
    
    ** 支持操作
    查看预览文件
    5-4-2、查看脚本
    /*
    NorthwindYlbTech 的部署脚本
    
    此代码由工具生成。
    如果重新生成此代码,则对此文件的更改可能导致
    不正确的行为并将丢失。
    */
    
    GO
    SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
    
    SET NUMERIC_ROUNDABORT OFF;
    
    
    GO
    :setvar DatabaseName "NorthwindYlbTech"
    :setvar DefaultFilePrefix "NorthwindYlbTech"
    :setvar DefaultDataPath "C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATA"
    :setvar DefaultLogPath "C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATA"
    
    GO
    :on error exit
    GO
    /*
    请检测 SQLCMD 模式,如果不支持 SQLCMD 模式,请禁用脚本执行。
    要在启用 SQLCMD 模式后重新启用脚本,请执行:
    SET NOEXEC OFF; 
    */
    :setvar __IsSqlCmdEnabled "True"
    GO
    IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
        BEGIN
            PRINT N'要成功执行此脚本,必须启用 SQLCMD 模式。';
            SET NOEXEC ON;
        END
    
    
    GO
    USE [$(DatabaseName)];
    
    
    GO
    PRINT N'已跳过具有键 35cbb56d-7deb-4abd-887a-da543c0bbccd, 9e28fbb1-5bde-4095-86c3-3da83fdec94f 的重命名重构操作,不会将元素 [dbo].[Categories].[Id] (SqlSimpleColumn) 重命名为 CategoryId';
    
    
    GO
    PRINT N'正在创建 [dbo].[Categories]...';
    
    
    GO
    CREATE TABLE [dbo].[Categories] (
        [CategoryId]   INT           IDENTITY (1, 1) NOT NULL,
        [CategoryName] NVARCHAR (50) NULL,
        [Description]  NTEXT         NOT NULL,
        [Picture]      IMAGE         NOT NULL,
        CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED ([CategoryId] ASC)
    );
    
    
    GO
    PRINT N'正在创建 [dbo].[Categories].[CategoryId].[MS_Description]...';
    
    
    GO
    EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'类别ID', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Categories', @level2type = N'COLUMN', @level2name = N'CategoryId';
    
    
    GO
    PRINT N'正在创建 [dbo].[Categories].[CategoryName].[MS_Description]...';
    
    
    GO
    EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'类别名称', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Categories', @level2type = N'COLUMN', @level2name = N'CategoryName';
    
    
    GO
    PRINT N'正在创建 [dbo].[Categories].[Description].[MS_Description]...';
    
    
    GO
    EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'秒杀', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Categories', @level2type = N'COLUMN', @level2name = N'Description';
    
    
    GO
    PRINT N'正在创建 [dbo].[Categories].[Picture].[MS_Description]...';
    
    
    GO
    EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'图片', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Categories', @level2type = N'COLUMN', @level2name = N'Picture';
    
    
    GO
    -- 正在重构步骤以使用已部署的事务日志更新目标服务器
    
    IF OBJECT_ID(N'dbo.__RefactorLog') IS NULL
    BEGIN
        CREATE TABLE [dbo].[__RefactorLog] (OperationKey UNIQUEIDENTIFIER NOT NULL PRIMARY KEY)
        EXEC sp_addextendedproperty N'microsoft_database_tools_support', N'refactoring log', N'schema', N'dbo', N'table', N'__RefactorLog'
    END
    GO
    IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '35cbb56d-7deb-4abd-887a-da543c0bbccd')
    INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('35cbb56d-7deb-4abd-887a-da543c0bbccd')
    IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '9e28fbb1-5bde-4095-86c3-3da83fdec94f')
    INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('9e28fbb1-5bde-4095-86c3-3da83fdec94f')
    
    GO
    
    GO
    PRINT N'更新完成。';
    
    
    GO
    查看脚本文件
    5-4-3、查看结果
    已跳过具有键 35cbb56d-7deb-4abd-887a-da543c0bbccd, 9e28fbb1-5bde-4095-86c3-3da83fdec94f 的重命名重构操作,不会将元素 [dbo].[Categories].[Id] (SqlSimpleColumn) 重命名为 CategoryId
    正在创建 [dbo].[Categories]...
    正在创建 [dbo].[Categories].[CategoryId].[MS_Description]...
    正在创建 [dbo].[Categories].[CategoryName].[MS_Description]...
    正在创建 [dbo].[Categories].[Description].[MS_Description]...
    正在创建 [dbo].[Categories].[Picture].[MS_Description]...
    更新完成。
    查看结果文件

     5-5、

    6.  导入-->脚本(*.sql)返回顶部
    6-0、导入脚本文件
    go 
    -- ============================================= 
    -- 1,供应商 
    -- ============================================= 
    create table Suppliers 
    ( 
    SupplierID int identity(1,1) primary key,   --供应商ID [PK] 
    CompanyName nvarchar(40) not null,          --公司名称 
    ContactName nvarchar(30),           --联系人姓名 
    ContactTitle nvarchar(30),          --联系人头衔 
    [Address] nvarchar(60),             --地址 
      
    City nvarchar(15),                  --城市 
    Region nvarchar(15),                --地区 
    PostalCode nvarchar(15),            --邮政编码 
    Country nvarchar(24),               --国家 
    Phone nvarchar(24),                 --电话 
      
    Fax nvarchar(24),           --传真 
    HomePage ntext              --主页 
    ) 
    go
    -- ============================================= 
    -- 8,运货商 
    -- ============================================= 
    create table Shippers 
    ( 
    ShipperID int identity primary key,     --运货商ID【PK】 
    CompanyName nvarchar(40) not null,      --公司名称 
    Phone nvarchar(24)                      --电话 
    ) 
    Import Sql
    6-1、项目右键,导入-->脚本(*.sql)
     

    6-1-1、导入 SQL 脚本文件-step1

     6-1-2、step2

    6-1-3、step3

    6-2、导入后的目录
    6-3、
    6-4、
    6-5、
    7. 从数据库向架构更新对象(表等)返回顶部
    7-1、SQL Server项目数据库与数据库比较
    7-2、SQL Server数据库与项目数据库比较
    7-2-1、更新后的项目中,新增Employees.sql 文件
    7-3、
    8. 在项目中,新建表,然后用SQL脚本创建返回顶部
    8-1、step1
    8-2、step2
    8-3、
    9.返回顶部
     
    10. 附件资料返回顶部
    10-1、Products 表系统创建脚本
    CREATE TABLE [dbo].[Products]
    (
        [ProductId] INT NOT NULL PRIMARY KEY IDENTITY, 
        [ProductName] NVARCHAR(50) NOT NULL, 
        [CategoryId] INT NULL, 
        [QuantityPerUnit] NVARCHAR(50) NULL, 
        [UnitPrice] MONEY NULL, 
        [UnitsInStock] INT NULL , 
        [UnitsInOrder] INT NULL , 
        [ReorderLevel] INT NULL, 
        [Discontinued] BIT NULL, 
        CONSTRAINT [CK_Products_UnitsInStock] CHECK (UnitsInStock>=0), 
        CONSTRAINT [CK_Products_UnitsInOrder] CHECK (UnitsInOrder>=0), 
        CONSTRAINT [CK_Products_ReorderLevel] CHECK (ReorderLevel>=0), 
        CONSTRAINT [FK_Products_Categories] FOREIGN KEY (CategoryId) REFERENCES Categories(CategoryId)
    )
    
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'产品ID【 PK,ID】',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'ProductId'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'产品名称',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'ProductName'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'类别ID【 FK】',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'CategoryId'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'单位数量',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'QuantityPerUnit'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'单价',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'UnitPrice'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'库存量',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'UnitsInStock'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'订购量',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'UnitsInOrder'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'再购数量',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'ReorderLevel'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'中止标识:0=正常;1=中止',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = N'COLUMN',
        @level2name = N'Discontinued'
    GO
    EXEC sp_addextendedproperty @name = N'MS_Description',
        @value = N'产品表',
        @level0type = N'SCHEMA',
        @level0name = N'dbo',
        @level1type = N'TABLE',
        @level1name = N'Products',
        @level2type = NULL,
        @level2name = NULL
    Products SQL

    10-2、

    11.返回顶部
    11-1、MSDN
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    selenium—用NoSuchElementException异常判断页面元素是否存在
    CentOS7 Nginx安装及配置反向代理
    CentOS7 安装 jexus-5.8.2-x64
    Windows Server 2008 R2远程协助选项 灰色
    IIS8.5 Error Code 0x8007007e HTTP 错误 500.19的解决方法
    记一次 windows server 2012R2 上安装 MSSQL2005 及网站发布
    记一次《系统集成实施的相关知识》培训自己感悟
    MySql 远程连接的条件
    CentOS7 下安装mysql历程
    VirtualBox虚拟机网络设置(四种方式)
  • 原文地址:https://www.cnblogs.com/ylbtech/p/7818750.html
Copyright © 2011-2022 走看看