VS 中 Sql Server Database Project 的应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS 中 Sql Server Database Project 的应用相关的知识,希望对你有一定的参考价值。

在上一篇【VS 中 Sql Server Database Project 的应用(一)】文章中我们已经创建好了我们的项目以及结构,现在我们要开始编码了。一般来说,当创建好数据库后,都会单独为此数据指定一个用户用于访问和操作,那么我们就先从创建用户开始。

创建用户步骤:

  1. 创建 SQL Server 服务器级别的登陆账户

  2. 为登陆账户添加角色

  3. 创建数据库级别的操作用户

  4. 为操作用户添加角色

 

具体实现如下:

我们新建了两个文件 Demo.login.sql 和 Demo.user.sql 如下图。

技术分享

 

看似简单的操作(不就是新增两个文件嘛),但还是有需要注意的地方。虽然我们新增的文件基本上都是后缀名为 .sql 的脚本文件,但实际上文件类型还是有区别的。

技术分享

 

我们上面添加的两个文件的文件类型是 Script(build),注意不要选择Not in build。 Script(build) 和 Script(Not in build)的区别是什么呢? 从字面上基本就可以看出,build 类型的文件是在编译部署时会执行的,而 Not in build 类型的文件在项目编译部署时是不会执行的。我们选择 Script(build) 类型,是因为我们希望在部署数据库时就执行 创建用户 的操作。

 

注: 通过快捷方式创建的脚本文件,默认是 Script(Not in build) 类型的。

 

技术分享

 

 

Demo.login.sql 的代码实现如下:

/*
    ==创建登陆用户==

    用户名: iDemo
    密  码: iDemo
    默认库: DemoDB
    默认语言: 英语
    强制密码策略: 关闭
*/
CREATE LOGIN iDemo WITH PASSWORD=iDemo, DEFAULT_DATABASE = DemoDB, DEFAULT_LANGUAGE = US_ENGLISH, CHECK_POLICY = OFF

GO


/*
    ==角色添加==

    用户: iDemo
    角色: sysadmin
*/
EXEC sp_addsrvrolemember iDemo, sysadmin

GO

 

 

Demo.user.sql 的代码实现如下:

/*
    ==创建数据库用户==

    用户名: iDemo
    该用户映射的服务器登陆账户是: iDemo
    默认架构: dbo
*/
CREATE USER iDemo FOR LOGIN iDemo WITH DEFAULT_SCHEMA = dbo

GO

/*
    ==添加角色==
    
    用户: iDemo
    角色: db_onwer
*/
EXEC sp_addrolemember db_owner, iDemo

GO

 

 

OK啦, 用户创建这部分的编码我们已经完成了,接下来我们来创建一张表。在Table目录文件夹: 右键 -> Add -> Table -> 输入表名。 之后出来的界面如下图:

技术分享

 

表格的界面由 设计 和 T-SQL 两部分组成, 设计又分为表格字段信息 和 与表格相关的其他信息(约束, 索引, 触发器等等)两部分。 新建的表格默认只会生成一个主键字段Id。 上图中的表格是我完成后的样子。你可以选择只用设计界面或只用T-SQL界面,我比较习惯用T-SQL界面来进行操作。

类似的你也可以在相应的结构目录下尝试新建存储过程,函数等操作,当然,存储过程,函数等是没有设计界面的,只有 T-SQL 界面。 但系统会为我们创建好模板代码,如创建存储过程是时,系统自动生成的模板代码如下

CREATE PROCEDURE [dbo].[Proc_DemoTest]
    @param1 int = 0,
    @param2 int
AS
    SELECT @param1, @param2
RETURN 0

 

以上是关于VS 中 Sql Server Database Project 的应用的主要内容,如果未能解决你的问题,请参考以下文章

Learning Note: SQL Server VS Oracle–Database architecture

转发C#连接sql server数据库的方法

[转[tip] localhost vs. (local) in SQL Server connection strings

怎么用VS的C#Winform连接sql数据库?

Database SQL Server 2017

vs2005怎么调用sql语句,需要加啥头文件?