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=中止
)
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 指定为目标平台的项目可能遇到与 SQL Server 有关的兼容性问题。
项目和目标数据库的排序规则设置不同。可能会发生部署错误。
将 SQL Server 指定为目标平台的项目可能遇到与 SQL Server 有关的兼容性问题。
项目和目标数据库的排序规则设置不同。可能会发生部署错误。 ** 突出显示
将重新生成的表

将删除的聚集索引

将创建的聚集索引

可能的数据问题
无 ** 用户操作
创建
[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 Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\"
:setvar DefaultLogPath "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\" 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--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
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

SQL Server 数据库项目的更多相关文章

  1. NetBeans连接SQL server数据库教程

    不废话,直接开始 1.下载sqljdbc.jar 可以从微软中国官方网站下载 SQLJDBC微软中国 笔者提供一个网盘链接Sqljdbc.jar 4个压缩包视版本选择,SQL 2012 用sqljdb ...

  2. SQL Server数据库性能优化之索引篇【转】

    http://www.blogjava.net/allen-zhe/archive/2010/07/23/326966.html 性能优化之索引篇 近期项目需要, 做了一段时间的SQL Server性 ...

  3. SQL Server数据库性能优化之SQL语句篇【转】

    SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...

  4. 漫谈可视化Prefuse(一)---从SQL Server数据库读取数据

    上篇<可视化工具solo show-----Prefuse自带例子GraphView讲解>主要介绍了整个Prefuse工具集具有的一些特征.框架的运行流程,分析并展现了官方提供的例子Gra ...

  5. 如何彻底的卸载sql server数据库

    如何彻底的卸载sql server数据库    好不容易装上了sql server 2012数据库,可是却不能连接本地的数据库,后来发现缺少一些服务,于是决定重新安装,但是卸载却很麻烦,如果卸载不干净 ...

  6. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  7. 牢记!SQL Server数据库开发的二十一条注意点

    如果你正在负责一个基于SQL Server的项目,或者你刚刚接触SQL  Server,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS). ...

  8. .NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常)

    .NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常) 前段时间项目使用一次性读去SQL Server中保存的电子文件的文件流然后返回给客户端保存下载电子文件, ...

  9. C#对于sql server数据库的简单操作

    1.在用windows模式登陆sql server 数据库 简历一个student的数据库,然后新建查询: create table student ( id int auto_increment p ...

随机推荐

  1. 关于Sql Server的一些知识点的定义总结

    数据库完整性:是指数据库中数据在逻辑上的一致性.正确性.有效性和相容性 实体完整性(Entity Integrity  行完整性):实体完整性指表中行的完整性.主要用于保证操作的数据(记录)非空.唯一 ...

  2. ubuntu 配置mycat

    https://blog.csdn.net/leisure_life/article/details/78611594 这篇博主写的非常好,我找了很久 都解决不了,最后按照他的步骤解决了问题. 其中有 ...

  3. BZOJ.1011.[HNOI2008]遥远的行星(思路 枚举)

    题目链接 设当前为\(i\),令\(j=\lfloor a*i\rfloor\),\(1\sim j\) 即为对\(i\)有贡献的行星,这一区间的答案应为\[f[i]=M_i*\sum_{k=1}^j ...

  4. poj 1797 最短路变形dijkstra

    题意:题目大意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量 链接:点我 解题思路:其实这个求最大边可以近似于 ...

  5. 【BZOJ-3218】a+b Problem 最小割 + 可持久化线段树

    3218: a + b Problem Time Limit: 20 Sec  Memory Limit: 40 MBSubmit: 1320  Solved: 498[Submit][Status] ...

  6. Spring @Value的$和#用法区别

    @Value的值有两类: ① ${ property : default_value } ② #{ obj.property? : default_value } 就是说,第一个注入的是外部参数对应的 ...

  7. x270

    https://thinkpad.lenovo.com.cn/product/93964.html

  8. resteasy经验谈

    resteasy 是java体系中比较成熟的rest框架,也是jax-rs规范的实现之一,dubbox的REST服务框架,就是采用的resteasy实现,近日在实际项目中遇到了几个问题,记录于此:   ...

  9. 关于Android中传递数据的一些讨论

    在Android中编写过程序的开发人员都知道.在Activity.Service等组件之间传递数据(尤其是复杂类型的数据)很不方便.一般可以使用Intent来传递可序列化或简单类型的数据.看下面的代码 ...

  10. .net core在Linux ARM板上运行

    最近接了个临时任务,给别的项目组的机器人平台上开发个小程序,那机器人上跑的是ARM平台,ubuntu的系统. 本来打算用C++写的,由于最近用.net core较多,鉴于其在linux平台良好的兼容性 ...