在上一篇【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