暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL Server教程

原创 yBmZlQzJ 2023-07-30
825

SQL Server教程

SQL Server 是Microsoft 公司推出的关系型数据库管理系统。SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

SQL Server是Microsoft开发的一个企业数据库管理系统(DBMS)。 它被用于全球数以千计的企业和所使用,以及成千上万(不是数百万),世界各地的网站使用。

SQL Server (2014) 教程

本教程解释了什么是SQL Server 2014,以及如何使用它。 你应该有关系数据库管理系统,以及它们如何工作的基本知识,基于SQL Server2014上。 SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNⅨ操作系统上的应用。 SQL Server 2000 是Microsoft 公司推出的SQL Server数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 Microsoft按照客户/服务器体系结构的分布进行操作。这种方法产生不必要的代价和复杂性。在Internet中,Oracle已经发现了一个较好的答案。在Internet Computing的多层(multi-tiered)体系结构中,集中(centralization)可以简化应用的部署和维护,数据的管理和备份,并向客户提供了高级的性能、安全性与可靠性,结果使总的操作成本更低。Oracle具有使所有数据和文档存储在少数几个高性能数据库的能力,这种能力使客户可以集中管理他们所有的数据,并且信息管理和访问更加容易、可靠且价格更加便宜。

开放

SQL Server只在Windows上运行,MicroSoft这种专有策略的目标是将客户锁定到Windows环境中,限制客户通过选择一个开放的基于标准的解决方案来获取革新和价格竞争带来的好处。此外,人们也都知道,Windows平台本身的可靠性、安全性和可伸缩性也是有限的。Oracle能在所有主要的平台(其中包括Windows)上运行,并且完全支持所有的工业标准,所以,客户可以利用很多种第三方应用程序、工具、网关和管理实用程序。Oracle采用开放策略,它使得客户可以选择一种最适合他们特定需要的解决方案。利用Oracle8i,操作系统实质上将变得无关紧要。Oracle8i的Internet文件系统(iFS)是一种突破,这种突破性给所有数据类型提供了一种易于使用的数据管理接口,这样减少了客户对Windows之类的专用操作系统。

可伸缩性

由于SQLServer7.0的并行实施和共存模型并不成熟,这使得人们更加关心该产品处理日益增多的用户数和数据卷mes)的能力。Oracle在下列两个方面提供了一个优越的可伸 簇:Oracle并行服务器通过使一组节点共享同一簇中的工作负载来扩展Windows NT的能力,Oracle提供具有高可用性和高伸缩性的簇解决方案,而Microsoft只提供克服错误的簇。根据Gartner Group的一份报告(10/97),Microsoft在2001年以前将不会有一个可伸缩的簇解决方案。Oracle自从1997年以来就已经有这种能力。伸缩到其他操作系统:因为Oracle是一个开放的解决方案,客户可以从他们的系统移到Unix或另一个操作系统,当Windows NT不能满足他们的需要。SQL Server与单个平台的结合意味着,当一个客户达到Windows NT的限制时,除了放弃他们的系统并移到一个新平台上的一个新数据库以外??一个最能节省时间和金钱的建议,他们再也没有其他选择。

安全性

由于Internet的出现而带来的全球数据访问也同时增加了潜在的安全危险。对于数据库的安全要求决不会比以前更高,而SQL Server7.0还没有获得任何类型的安全证书。相比之下,Oracle是唯一获得最高认证级别的ISO标准认证的数据库。Oracle高级的安全特性考虑了强制实施的细小权限,先进的审查,增强的访问控制,安全的分布是处理与复制,以及使用附加的外部签发机制的能力。SQL Server7.0没有这些特性。

可扩展性

今天的Internet是一个令人激动的新世界,它具有鲜明的图像,实时的视频点播,高保真的语音和声音,以及诸如金融数据趋势和地理编码之类的复杂信息。通过集中管理文本、图像、音频、视频和地理信息,Oracle8i的interMedia使客户能够利用Web的多媒体特性。相比之下,Microsoft SQL Server 7.0对非传统的数据类型缺乏内置的支持。作为一种替代的策略,Microsoft提倡将非传统的数据存储到单独的服务器里的平面(flat)文件中,然后使用OLE-DB将它们链接在一起。使用这种策略,集成在Web中发现的各种数据类型,将会产生复杂的、不安全的、维护量大的数据包(mess),这种数据包缺乏事物的完整性。

性能

低性能可能是很致命的(fatal),因为雇员的生产能力被阻碍,客户由于过多的等待时间而丢失。根据事物处理委员会(TPC)审查的标准与结果,Oracle提供了比SQL Server7.0更高级的性能。到1998年11月为止,Oracle一直是Windows NT中TPC-D和TPC-C标准的世界记录保持者。实际上,Oracle的NT TPC-C结果几乎比Microsoft的快两倍。Microsoft 从来没有宣布一个TPC-D结果,这就意味着尽管SQL Server7.0中有假定的环境,但它仍然不适合于数据仓库应用。Oracle也保持了SAP,Baan和Peoplesoft标准的世界记录。通过一贯地演示正式标准与实际情况之间的性能关系,acle已被证明,它可以处理最紧迫的数据仓库和OLTP应用的工作负。

操作简单

使数据库易于安装、使用和管理??组合在一起称为“操作简单“??是一个减少成本的关键因素。尽管Microsoft产品具有易于使用的美誉,但SQL Server7.0缺乏数据库管理的特性,而这种特性是复杂的数据库系统所必须的。例如,对于SQL Server6.5和SQL Server7.0,Microsoft需要使用单独的管理工具。为了易于安装,Oracle使用了一个基于Java的实用程序,该实用程序提供了安装和运行一个预调整和预配置的Oracle8i数据库所需要的一切内容。“操作简单“的最重要部分是易管理性,Oracle Enterprise Manager(企业管理器)提供一个集成的管理控制台来集中管理多个服务器。客户也可以单独购买所有三个或其中任何一个可选的管理包,这些管理包提供了高级的功能来调整和诊断数据库,管理数据库环PC Week已经说过,“SQL Server7.0并没有向客户提供其竞争对手尚未提供的任何新东西。”根据Information Week(9/14/98),“即使在经济的市场中:Windows NT环境,SQLServer7仍然不是OLTP数据库竞争者的对手。”在SQL Server7.0中,许多关键任务数据库应用所必需的功能(高可用性/可伸缩性、安全、性能等)仍然没有。Microsoft正在努力地追赶Oracle又一个技术领先的传统,新发布的Oracle8i也不例外。通过诸如iFS、数据库Java、WebDB、interMedia和WebToGo之类的革新,Oracle带头使各个公司获得Internet计算的好处。特别在Windows NT中,由于Oracle是第一个发布NT数据库簇解决方案的厂商,第一次支持超过大内存(VLM),第一次将高可用性和可伸缩性带到安装有Oacle并行服务器的NT中。

关于Microsoft SQL Server - SQL Server教程

微软SQL Server是由微软开发的一个关系数据库管理系统(RDBMS)。它是一个高度可扩展的产品,可以从一个单一的笔记本电脑上运行的任何东西或以高倍云服务器网络,或在两者之间任何东西。当然,“任何东西”,它仍然需要满足通常的硬件和软件要求,但这些要求是合理适度的,SQL Server都是可以运行的。

SQL Server是在世界上最常用的数据库。 因为微软的关系,它就是那么用户!

自SQL Server 1.0在1989年发布以来,SQL Server已演变成为一个真正的企业信息化平台。虽然它的核心功能是一个RDBMS,SQL Server已成为远不止于此。 SQL服务器2014年包括内置的商务智能工具,以及一系列的分析和报告工具。 这是关于最好的数据库管理工具,如创建数据库,备份,复制,安全性以及更多。

本教程更侧重于介绍数据库管理工具。

数据库管理工具

SQL Server提供了一些工具来帮助数据库管理和编程任务。

一些典型的数据库管理和编程任务可能包括:

  • 创建和维护数据库
  • 创建和维护表
  • 创建和维护其他数据库对象,如存储过程,视图等
  • 创建和维护和调度数据备份
  • 复制(例如,创建数据库的副本)
  • 创建和维护用户,角色等
  • 优化任务

这些是一些数据库管理员(DBA)可能需要执行很多任务。SQL Server提供了这些手段来执行这些任务。

Server数据库系统

SQL Server是一个服务器的数据库系统,而不是一个桌面系统 - 如 MS Access

基于服务器的数据库的系统被设计为在中央服务器上运行- 或服务器 - 使得多个用户可以同时访问相同的数据。用户通常通过应用程序访问数据库。

例如,一个网页可以存储在数据库中的所有内容。当访问者浏览的文章,他们从数据库中检索数据。在任何时候,一个网站可能服务了数百,甚至数千篇文章在其网站的访客。与此同时,其他用户可以更新他们的个人资料,在会员区,或订阅新闻简报或其他任何网站的用户操作。所以用户都同时读取和更新数据库。你需要一个良好的,强大的数据库系统满足这种类型的用法。毕竟,你不希望你的数据库锁定,因为太多用户试图访问它。或者更糟的是,你不会希望在你的数据库,由于电线损坏而致数据获取不到。

通常,这是是由网站的应用程序提供的功能,以这些访问者(例如,可以使用如,ColdFusion,HTML和JavaScript来构建网站)。它使用数据库存储数据,并使其可用。但是,SQL Server不包括一些有用的功能,可帮助应用程序提供的功能。

SQL Server版本

SQL Server有很多版本。有些是付费版本有些则是免费的。本教程中的例子是使用免费的SQL Server 2014工具。

SQL Server 2014版 - SQL Server教程

SQL Server 2014有三种主要版本和三个专业版本。 选择的版本将取决于您(或您的组织的)的要求。 如果你正在寻找一个免费的数据库管理系统,则需要选择Compact版或Express版本。 你也可以下载一个试用版,它允许您试用SQL Server2014 的时间为180天。

版本

这里有不同的版本可用于SQL Server2014。

主要版本

SQL Server 2014的三个主要版本是:

企业版

考虑保费发售,企业版的目的是向大规模数据中心和数据仓库解决方案。数据管理和商业智能平台,提供企业级的可扩展性,高可用性和安全运行的关键任务应用。数据中心版的所有功能(这是包含在SQL Server的早期版本,但现已不用)在SQL Server 2014企业版。

标准版

标准版的目的是对那些通常出现在规模较小的组织或部门的部门数据库和有限的商业智能应用。

商业智能版

针对向那些需要企业商业智能和自助服务功能,但不需要完整的在线事务处理(OLTP)性能和可扩展性到企业版。

专业版

除了SQL Server的主要版本,还有以下版本可用:

开发版(也被称为精简版)

免费,嵌入式软件开发人员可以使用ASP.NET构建网站和Windows桌面应用程序的数据库。

Web 版本

旨在支持面向Internet的工作负载,使企业能够快速部署网页,应用程序,网站和服务。

快捷版

SQL Server理想的学习和构建桌面和小型服务器应用程序的免费版本。限于每个数据库10GB存储空间。 Express版本中提供了以下版本:

SQL Server快捷与工具

包含连同管理SQL Server实例,包括SQL Server Express,LocalDB和SQL Azure的核心工具。

SQL Server 管理套件

不包含SQL Server数据库中,只有管理SQL Server实例的工具,其中包括的LocalDB,SQL 快速,SQL Azure等。如果你已经有了SQL Server数据库,只需要管理工具。

SQL Server Express LocalDB (MSI installer)

轻量级版本的SQL Server Express具有其全部功能及可编程,但是它运行在用户模式,具有快速,零配置安装。没有管理工具都包括在内。

SQL Server Express 及高级服务

包括数据库引擎,快速的工具,报表服务,全文检索,管理工具和SQL Server Express的所有组件。

SQL Server Express

这是核心Express数据库服务器。如果你需要接受远程连接或远程管理,并不需要使用工具或高级服务。

也可以下载它并安装用于演示和评估目的,有180天的试用期。这将使你尝试了完全成熟的企业版,在是否购买决定之前。

SQL Server在这个教程的版本

本教程中的例子是使用SQL Server2014 快捷工具进行。

下载SQL Server


安装SQL Server

以下是安装说明:SQL Server 2014 安装

SQL Server安装 - SQL Server教程

本小节教程中演示了如何使用安装向导在Windows Server 2012 R2上安装SQL Server2014。

在此安装中使用的系统的Windows Server2012 R2,事先从MSDN网站上下载安装了SQL Server Express 2014及工具。这些都是需要执行的安装步骤。你的步骤可能会略有不同(具体取决于您安装折SQL Server和配置的版本)。

如果没有SQL Server的副本安装,你可以从微软的网站上下载:SQL Server

安装 .NET 3.5 Framework

其中一个SQL Server2014先决条件是安装.NET3.5框架。Windows 2012在默认情况下使用.NET4.0,这里使用.NET3.5,你需要先安装它(除非你已经这样做了)。

它通常是确保开始SQL Server安装前,安装.NET3.5,但是,仍然可以在安装过程中做到这一点(我做了以下安装)。 一旦到了这一步,SQL Server安装将无法继续,直到安装了.NET3.5,只是继续并且安装了它,然后进行与SQL Server安装。

如果您需要安装.NET3.5,这里是安装.NET3.5框架的说明。如前所述,您可以执行此步骤在SQL Server安装之前或期间。

安装 SQL Server

使用安装向导进行以下安装。

  1. 双击安装文件(mine被称为ISO文件 SQLEXPRWT_x64_ENU at 853,214 KB)
  2. 单击后会显示是否要允许以下程序在这台电脑进行安装?
  3. 当系统提示您选择用于解压文件目录,单击OK使用默认的目录,或者单击浏览...并选择其它目录: Install SQL Server 2014 - step 3
  4. 将开始进行安装: Screenshot of the installation dialog box
  5. 如果你想执行一个新的独立安装或从以前版本的SQL Server升级。执行新的独立安装,单击新的SQL Server单机安装或添加功能到现有安装: Install SQL Server 2014 - step 4
  6. 如果您同意许可条款,请选择我接受许可条款,然后单击下一步: Install SQL Server 2014 - step 5
  7. 在功能选择屏幕上,选择或取消您想包含或不要的功能。 您可以通过点击看到每个功能的说明。该说明显示在右上方窗格中。 在此窗格中,您可以看到基于所选功能的前提条件和要求。如果你愿意,你也可以更改列在底部的默认目录。下面的截图显示的默认功能(这是我用来安装SQL Server)。满意所选定的功能后单击下一步: Install SQL Server 2014 - step 6
  8. 此时,如果您还没有安装.NET Framework3.5,将收到以下错误: Install SQL Server 2014 - step 7 点击详细报告会打开一个详细的系统配置检查报告。安装.NET3.5框架,详见 安装 .NET 3.5 Framework。一旦安装了.NET Framework 3.5,按上重新运行。
  9. 指定实例路径(或使用默认设置),然后单击下一步: Install SQL Server 2014 - step 8
  10. 在服务器配置屏幕,您可以指定用户帐户和启动类型,或者干脆把它的默认配置。或者满意配置后,单击下一步: Install SQL Server 2014 - step 9
  11. 在数据库引擎配置界面,可以保留默认设置或更改以满足您的要求。您可以指定认证模式SQL Server将使用,或者也可使用SQL Server管理员。必须提供至少一个系统管理员。也可以更改数据目录或保留默认值。满意数据库引擎的配置以后,就单击下一步: Install SQL Server 2014 - step 10
  12. 安装将开始。完成后,可能会要求重新启动计算机。单击确定,然后重新启动计算机: Install SQL Server 2014 - step 11

SQL Server 2014现在就安装了。

其它安装方法

SQL Server 2014可以使用多种方法来安装。以下是从微软网站上了解每种方法的说明:

Windows2012 R2上安装.NET3.5框架 - SQL Server教程

如果你安装SQL Server2014(或任意数量的其他应用软件), 可能会发现必须要安装.NET3.5框架,然后才能进行下一步。

您可能在安装SQL Server2014或在进行中时。如果去安装.NET3.5框架,你将需要保持SQL Server安装保持窗口打开。因此,建议您首先安装.NET3.5框架。

以下是可以将.NET3.5框架安装到你的服务器。

  1. 打开服务器管理器
  2. 单击管理,然后选择添加角色和功能
  3. 添加角色和功能向导将会出现。点击下一步
  4. 在选择安装类型屏幕上,选择基于角色的或基于功能的安装,然后单击下一步。
  5. 选择要安装.NET3.5,然后单击下一步服务器: Install .NET 3.5 - step 5
  6. 在选择服务器角色屏幕上,单击Next,不用做任何选择: Install .NET 3.5 - step 6
  7. 在选择功能屏幕,检查.NET Framework 3.5的功能,然后单击下一步: Install .NET 3.5 - step 7
  8. 在确认安装选择屏读取警告,将显示你需要指定一个备用源路径。如果目标计算机不能访问到Windows Update,单击指定备用源路径链接(在对话框的底部): Install .NET 3.5 - step 8
  9. 指定的路径安装媒体上的sourcessxs文件夹,然后单击确定只有当你不得不指定一个备用路径执行此步骤。:Install .NET 3.5 - step 9
  10. 在您指定的备用电源,或者如果目标计算机能够访问Windows更新,关闭警告(点击X),然后单击安装。
  11. 一旦.NET Framework 3.5已经安装时,屏幕会告诉你(计算机名称)安装成功。点击关闭(可以继续查找所需要的.NET Framework3.5): Install .NET 3.5 - step 11

SQL Server管理套件(SSMS) - SQL Server教程

假设你成功地安装SQL Server2014 很可能,你会想要做的第一件事就是打开SQL Server管理套件,并开始使用它。

什么是SQL Server管理套件?

SQL Server管理套件(SSMS)是SQL Server的主管理控制台。

SSMS,您可以创建数据库对象(如数据库,表,存储过程,视图等),查看该数据在数据库中,配置用户帐户,执行备份,复制,数据库之间的数据传输,等等。

SQL Server管理套件的图形用户界面,最多任务是“点击”。它也使您能够运行SQL脚本接口,因此也有需要编程/脚本任务。然而,许多任务可以通过GUI或SQL脚本来执行,所以你自己的选择使用哪一个。例如,您可以创建一个使用GUI或通过运行SQL脚本的数据库。虽然如此,但你仍然需要GUI,以运行脚本。

SSMS是什么样子的?

当你打开SQL Server管理套件,系统会提示您用一个登录屏幕,看起来像下面的截图连接到SQL Server。您可以保留默认身份验证设置或更改它们:

Screenshot of SQL Server Management Studio login

下面是SQL Server管理套件的样子,一旦你连接(并打开新的查询):

Screenshot of SQL Server Management Studio

左窗格包含对象资源管理器。在对象资源管理器提供了导航数据库,服务器对象(如触发器),日志文件,等等。

右侧窗格中会根据您要执行任务而改变。 因为如果你在修改表的例子,可能会看到表的设计和性能,在右窗格中。在这张截图我已经通过单击新建查询按钮打开一个空白查询。许多数据库任务可以通过此窗口(即程序),或通过GUI当量(即“点击”)进行。

可以使用SQL Server管理套件,只要你喜欢创造尽可能多的数据库。您也可以连接到尽可能多的数据库上尽可能多的服务器,只要你喜欢。这些都出现在对象资源管理器。所以,可以运行在你的开发环境查询,然后切换到测试或生产环境和运行一个查询在那里。正因为如此你必须要小心,不小心遇到了错误的服务器的脚本。

大多数使用SQL Server管理套件执行的任务无论是从顶部菜单,或用一个图标/对象上单击鼠标右键启动。

本教程的大部分将探索不同的东西,你可以通过SQL Server管理套件自己使用熟悉。

SQL Server创建数据库 - SQL Server教程

现在,我们已经打开SQL Server管理套件,让我们开始创建一个数据库。

在本教程中我将创建一个数据库来跟踪任务. 它可以作为一个任务跟踪器应用程序的后端. 给定数据库的一个明显的名称,比如“TaskTracker”,好让知道它用意. 这将有助于区分其他数据库这个数据库 , 在我的SQL Server管理套件里有10或20个数据库(这将可能是有一些数据库管理员)。

创建数据库可以通过运行SQL脚本或以“点击,然后点击”完成。在这里,我们将使用“点击”。但首先,让我们来看看系统数据库。

系统数据库

当您安装SQL Server,以下四个数据库自动创建。

master

此数据库存储系统级别的信息,如用户帐户,配置设置,并在所有其他数据库信息。

model

该数据库被用作所创建的所有其他数据库的模板。

msdb

msdb数据库是用于配置警报使用SQL Server代理和预定作业等

tempdb

这其中包含所有临时表,临时存储过程,并通过SQL Server生成任何其他临时存储需求。

这些系统数据库和每个的存在是有特定的用途。当我们创建自己的数据库,该数据库将基于模型数据库(上图)上创建。该数据库为您创建的任何新数据库的模板。

如何创建一个新的数据库

下面的步骤演示了如何使用SQL Server管理套件在SQL Server 2014创建数据库。

  1. 从对象资源管理器中,右键单击数据库文件夹/图标,然后选择 New database...: Create a database in SQL Server 2014 - step 1
  2. 命名你的数据库(这里叫TaskTracker),然后点击 OK: Create a database in SQL Server 2014 - step 2
  3. 没有更多的步骤......就大功告成了!

新数据库

新的数据库就会出现在对象资源管理器中(在系统数据库文件夹下)的数据库部分。这里是我的:

Screenshot of my new database

如所提到的,新的数据库是基于模型数据库。该模型数据库是被用作每当创建一个新的数据库模板的系统数据库。如果使用的左侧窗格中浏览到数据库,并展开树,你会发现,数据库已经包含了许多对象。例如,它已经包含的系统功能,系统视图,存储系统过程,和(隐藏)系统表。这些都是提供有关数据库的信息系统对象。

Screenshot of my new database and it's objects

其他选项

我们刚刚创建使用默认选项的数据库。当创建的数据库,数据文件和一个事务日志中创建。他们为服务器的默认位置创建。

如果我们想想,我们可以指定一个不同的位置,这些文件在我们创建数据库的时候。我们也可以改变其它的规范,如是否允许将文件自动增长(如它存储越来越多的数据),如果是这样,增长应进行管理。

许多这些选项可以通过数据库属性,这可以通过在数据库和选择属性右击访问:

Screenshot of right clicking on database

在属性对话框中包含了大量的更改数据库的配置选项。点击在左上面板的各个项目,将导致在被显示各自的选择。现在,我们将保留/使用一切的默认设置。

Screenshot of the Properties dialog box

所以,我们刚刚创建的数据库。但它是一个空数据库。我们可以将数据添加到数据库之前,我们需要至少创建一个表。下一节我们来学习如何创建表;

SQL Server创建表 - SQL Server教程

上一节中我们创建了一个数据库。现在,让我们添加一个表。

作为我们的数据库是一个任务跟踪数据库,我们的第一个表叫做“Tasks”。 该表将持有的所有任务- 一个重要的属性状态。然后,我们可以创建另一个表名为“Status”。一旦我们的表包含数据,我们将能够运行针对这些表的查询,找出工作需要做什么和给定的状态,等等。

但是让我们不要超前。让我们来创建第一个表。

如何在SQL Server 2014创建表

这些步骤中使用SQL Server管理套件(SSMS),在一个SQL Server 2014 数据库中创建一个表。

  1. 确保有正确的数据库扩展(在我们的例子中,数据库为:TaskTracker)右键单击表图标并选择Table......从上下文菜单: Creating a table in SQL Server 2014 - step 1
  2. 一个新表将在设计视图中打开。当你有这样的屏幕打开,请执行以下操作:
    1. 在截图中的值,完成细节的列名列数据类型列,允许空列。
    2. 通过右键单击旁边的TaskId按钮(即其中关键出现在下面的截图同一地区),并选择设置主键TASKID列主键字段。
    3. 通过设置是一种身份为Yes(你可以找到在身份规格部分在底部窗格此选项)使TASKID列标识列。需要注意的是在底部窗格中设置的值,需要首先选择在顶部窗格中的列名。我们设置这个专栏是一个自动编号列 - 它会自动生成创建的每个记录一个新数值。
    4. 设置dateCreated列的缺省值为(getdate())。 (这将该字段为每个新记录自动插入当前日期到)。Creating a table in SQL Server - step 2

我们现在做的是创建的列名,指定可以输入数据类型,并设置默认值。限制每一列的数据类型是非常重要的,以帮助维护数据的完整性。例如,它可以防止我们意外输入任务名称到一个字段,用于存储当前日期。SQL Server将阻止进入表,数据不会粘附到我们已经为每列设置的规则的数据。

  1. 保存该表通过选择 File > Save Table_1 或者通过表的选项卡,然后从上下文菜单中选择保存Table_1上单击鼠标右键: Screenshot of Save Table As... contextual menu
  2. 当系统提示,命名表(我们称之为Tasks): Screenshot of naming table

新表

现在,您已经创建了一个新的表,它会出现在数据库表部分。如果不能看到它,请尝试刷新对象资源管理器。 您可以通过右键单击onTables并单击从上下文菜单刷新: Refreshing Object Explorer

下面是表的截图与列文件夹扩展:

Viewing the contents of your table

完成。现在,让我们添加一些数据

SQL Server添加数据 - SQL Server教程

在前面的教训,我们在我们的数据库中创建一个表。我们现在有一个数据库,一张表......但没有数据。

获取数据到数据库有许多方式。以下是主要的方法:

  • 手动: 直接输入数据到表行。
  • 复制/粘贴: 类似于以前的选项,但是这一次是从其他来源的数据复制,然后粘贴到你的数据库中的表。
  • 导入: 可以使用导入和导出向导从另一个源导入数据。
  • SQL脚本: 可以运行一个包含所有数据插入SQL脚本。
  • 应用/网站: 使用者通过下列方式:应用程序或网站更新数据库。

这里是每个这些方法的更多细节介绍。

手动

我们可以使用编辑前200行选项手动直接输入数据到表行。

手动输入的数据是确定的,如果数据一点点进入。但它是一个有点笨重,可以不切实际,如果是大量的数据。 再加上它并没有真正满足大多数业务需求,其中非技术用户需要能够更新数据库。

在任何情况下,这里显示如何手工直接输入数据到表:

  1. 在对象资源管理器中,右键点击你要打开的表,然后选择编辑前200行: Screenshot of editing the top 200 rows of a table in SSMS
  2. 现在你可以开始直接输入数据到表中。

需要注意的是在使用我们刚刚创建的表,我们并不需要输入数据到TaskId 和dateCreated这两列。 这是因为他们将被自动填充(请记住,我们设置TASKID是唯一标识并且dateCreated会以(GetDate()))填充。 无需为StatusId输入任何东西,因为我们还没有创建状态表,再加上我们的表设计使该字段为空(我们选择允许空值)。

Screenshot of editing the top 200 rows of a table in SSMS

复制/粘贴

可以通过从另一数据源复制并粘贴到数据库表使用类似的方法,以上述内容。当然,这将需要在源表具有相同的列的目标表。类似于上面的手动方法中,这是行一个小数量的记录,但不适合大量的记录。

以下是如何复制/粘贴到表:

  1. 从数据源所需的所有记录
  2. 在目标数据库(例如:一个要填充数据),目标表上单击鼠标右键,然后选择编辑前200行
  3. 在最左边的列(它更是一个按钮,最左边的列的左侧,可以选择整个行),然后从上下文菜单中选择粘贴,选择通过右键单击一个空行: Screenshot of pasting data into a table in SSMS

如果需要粘贴超过200行,单击显示SQL窗格图标,从工具栏中显示的SQL语句显示后面200行。简单地根据需要在200改变为行的数量较多。 Screenshot of pasting data into a table in SSMS

需要注意的是,这种方式可在一定程度上,但你可能会遇到这么多数据传输需要执行多次,或需要使用其他方法。

导入

可以从另一个数据源导入数据。最终的结果是相似的拷贝/粘贴方法(即数据在到目标数据库中复制),但在导入数据更加灵活,可以更合适于许多场合。例如,您可以选择从多个视图和表中的数据,可以写一个查询就可以导入需要的数据。

要导入数据,在数据库上单击鼠标右键,并选择Tasks > Import Data... 并从那里按照向导执行操作。

Screenshot of selecting the Import Data option

在SQL Server导入和导出向导数据,可以将数据复制到并从其中一个托管的.NET Framework数据提供程序或本机OLE DB提供程序可用的任何数据源。这些包括:

  • SQL Server
  • 普通文件
  • Microsoft Office Access
  • Microsoft Office Excel

您也可以从Windows开始菜单中启动SQL Server导入和导出向导,从内部SQL Server数据工具(SSDT),并通过在命令提示符(通过运行DTSWizard.exe,你可能会找到在:C:Program FilesMicrosoft SQL Server100DTSBinn or inC:Program FilesMicrosoft SQL Server120DTSBinn 或其他位置,具体取决于您的配置和驱动器盘符)。

SQL脚本

在很多情况下,你会发现它更有效地运行包含需要插入数据的SQL脚本。您可以使用SQL INSERT语句插入语句,指定数据。

SQL脚本是伟大的静态插入/引用数据(如说,国家/地区)。它们可以存储并重新运行需要它的任何时间(例如在另一数据库)。脚本通常不进行数据的不断变化(如客户详细信息)那么好。你可能不会被保留过时的数据在一个副本的SQL脚本。但总有例外。例如,你可以使用这样一个脚本来填充客户表,用于测试/开发环境。

更多关于SQL脚本来了。

应用/网站

大多数的SQL Server数据库后端数据存储为一个前端应用程序。该应用程序的用户负责将数据添加到数据库(以编辑)。 因此,许多表中您的数据库将通过应用程序进行更新。在这种情况下,应用程序被更新是使用SQL脚本到数据库。

这些脚本和那些我们上面讨论的区别在于,在应用程序正在使用的脚本将是动态的。他们将接受数据作为传递给脚本的参数。因此,用户可以输入,电子邮件地址到应用程序中,但他并不知情在应用程序运行的SQL脚本,需要他的电子邮件地址,验证它,把它添加到脚本,如果通过了所有的业务/验证规则,最后将其插入到数据库中。

这些SQL脚本可以直接放置到您的网站的代码(PHP,ColdFusion的等),也可以将它们存储在数据库中的存储过程或视图。

看到作为SQL脚本SQL服务器(以及大多数其他数据库管理系统),这样的一个组成部分,接下来我们将仔细看看SQL脚本

SQL Server SQL脚本 - SQL Server教程

在前面的课程,我们使用“编辑前200行”选项添加数据到我们的数据库表。在这一课中,我们将着眼于如何编写SQL脚本来更新并运行对数据库进行查询。

SQL脚本可用于插入数据,读取数据,更新数据,和删除数据。它们也可以用于创建数据库对象,如表,视图,存储过程,他们甚至可以用于创建整个数据库本身 - 完整的表,数据,用户,等等。

Transact-SQL

SQL Server支持的、Transact-SQL作为脚本语言。 Transact-SQL是基于SQL(结构化查询语言),它是用于应用程序和它们的数据库之间的接口的编程语言。Transact-SQL是一个相对容易的语言学习,我强烈建议熟悉它。在这里每当指SQL脚本,意思就是一个Transact-SQL脚本。

SQL语句

SQL脚本通常由一个或多个“语句”。每个语句告诉SQL Server该怎么做。

SQL脚本可以包含许多语句。例如,SQL脚本可以包含一个语句创建一个表,另一份声明将数据插入到该表,而另一份语句中,以选择所有刚刚插入到表中的数据。事实上,SQL有一个用于那些确切的三项具体语句:CREATE语句,INSERT语句和SELECT语句。

一般来说,语句开始使用想要执行的任务的指令。如果你想创建一个数据库对象时,声明开始后创建。我说:“一般来说”,因为,还有一些其他的点点滴滴,你可以在抛出一个SQL语句可能会及所希望的语句。

SQL语句示例

也许最简单的SQL语句是学习SELECT语句。下面是在其最简单的SELECT语句的一个例子:

SELECT * FROM Tasks

上面的语句从任务表中的选择所有列。星号(*)的意思是“所有列”。上面的语句可以略作修改,只返回一个特定的列,我们可以添加一个WHERE子句来过滤数据,只有那些我们感兴趣的记录:

SELECT TaskName FROM Tasks
WHERE StatusId = "3"

上述语句选择从任务表中的TaskName列,但它只返回那些具有StatusId为3的记录。值为3可能是“To Do”或“Done”,或不管它是什么,我们只希望它表示具体的意思。在我们的TaskTracker数据库中,我们将创建一个新的表称为Status,我们将指定“3”是指什么(“1”和“2”又表示什么)。这些数字只是在StatusId字段中(我们指定为标识列 - 一个自动编号)的值。每个这些数字将在StatusName字段相应值将告诉我们实际上是什么状态。

然后,一旦我们已经创建了状态表中,我们可以修改上面的SQL语句,以包括状态表,以便我们可以编写为WHERE StatusName=“To Do”,而不是试图记住“To Do”数字是什么。

但是,我们需要首先创建我们的Status表...

使用SQL脚本创建表

下面是一个SQL脚本,将在我们的数据库中另一个表- 一个名为Status表。如果不熟悉SQL它可能看起来有点怪异。 当看到列及其相应的数据类型的名称是什么,那么也就对它有一些了解。在此脚本中,我们并不容许任何NULL字段(因此NOT NULL毗邻每一列)。我们也创建了主键StatusId字段,我们设定的默认值的dateCreated字段,使用(getdate())。

要运行此脚本,请执行以下操作:

  1. 脚本复制到剪贴板
  2. 在SQL Server管理套件,单击工具栏上的新建查询按钮:
  3. 脚本粘贴到查询窗口
  4. 点击!执行该工具栏上的按钮:

一旦脚本运行,你应该看到一条消息,读取命令已成功完成。

Screenshot of the New Query button

这里是脚本:

CREATE TABLE Status(
StatusId int IDENTITY(1,1) NOT NULL,
StatusName varchar(50) NOT NULL,
DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),
CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId)
)

键盘快捷键

注:也可以通过按F5键盘上运行一个查询。

另外,你甚至可以通过选择要运行的部分,然后按F5运行查询的一部分。这非常上包含大量的SQL语句的较大的脚本,但是,当由于某种原因,只要运行的一个或两个(或甚至运行所有这些,但只是一次一个)。

通过SQL脚本添加数据

也可以通过SQL脚本添加数据。该脚本将使用INSERT语句将数据插入到指定的表。 你可以使用脚本插入数据到所有列在表中,或者只是那些指定的表。

下面的脚本将数据插入状态表,然后选择该数据(所以我们可以看到,它进入了)。运行此脚本,你做了上述脚本)以同样的方式:

INSERT INTO Status (StatusName) VALUES ('To Do');
INSERT INTO Status (StatusName) VALUES ('In Progress');
INSERT INTO Status (StatusName) VALUES ('Done');

SELECT * FROM Status

这里是这个样子的:

Screenshot SQL query results

正如你所看到的,查询的结果显示在底部窗格中。

交叉参考数据

现在,我们已经得到了Status表,让我们一值添加到任务表的StatusId字段中(还记得我们保留那个字段为空的所有记录,因为我们还没有Status表)。

所以我们增加值要任务表链接到Status表。 在任务表中的每个记录现在将有一个StatusId,它的值可能是1,2或3(在状态表的StatusId字段中匹配的值)。

要做到这一点,我们需要使用UPDATE语句(因为我们正在更新记录,而不是插入新的)。

因此,事不宜迟,让我们运行下面的脚本:

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='1';

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='2';

UPDATE Tasks
SET StatusId='2'
WHERE TaskId='3';

UPDATE Tasks
SET StatusId='3'
WHERE TaskId='4';

UPDATE Tasks
SET StatusId='3'
WHERE TaskId='5';

UPDATE Tasks
SET StatusId='2'
WHERE TaskId='6';

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='7';

SELECT * FROM Tasks

现在应该看到其StatusId字段中填写的所有记录您的任务表,完整。应该是这样的:

Screenshot SQL query results

合并脚本

事实上,我们可能只是很容易地结合上述所有脚本并运行它们为一体。我只保留了它们,才能分离出来,使其更易于了解哪些部分做什么。

如果您想了解更多关于创建SQL语句,请看看SQL教程

区分大小写

SQL不区分大小写。所以下面的语句都是执行同样的事情:

  • SELECT * FROM TASKS
  • SELECT * FROM Tasks
  • Select * From Tasks
  • select * from tasks

数据库管理

大多数的数据库管理任务(如创建用户,备份等),可以在SSMS通过图形用户界面进行编程,可以通过SQL脚本来执行。本教程集中使用的图形用户界面,主要是因为它通常是一个更容易为新用户得到一个简单的入门。 当你更熟悉SQL Server,就可以使用SQL脚本来执行许多任务,也可通过图形用户界面做自己的事情。

接下来,我们看一下查询设计

SQL Server查询设计器 - SQL Server教程

在前面的课程,我们通过点击新建查询并运行一些SQL语句创建一个SQL脚本。在这一课中,我们将着眼于如何使用查询设计器编写SQL脚本 - 一个GUI构建的SQL语句。

关于查询设计器

查询设计器是协助建立查询SQL Server数据库的图形用户界面。构建复杂的查询时,涉及到许多表,视图等,这可能是特别有用

查询设计器还可以有利于学习如何编写SQL。通过查询设计器生成SQL,可以学习SQL,学习语法等。

建立查询

建立使用查询设计器的查询,请执行以下操作:

  1. 在工具栏上单击新建查询(New Query)打开一个新的查询
  2. 通过选择打开查询设计器 Query > Design Query in Editor... 从顶部菜单: Accessing the Query Designer
  3. 选择要运行对查询(在本例中,我们将添加两个表),单击添加,单击关闭关闭对话框表: Accessing the Query Designer
  4. 选择列,想通过检查旁边的列名的复选框,在查询中显示。在中间窗格中,你可以取消一个输出复选框以隐藏该字段被显示在查询运行(但字段仍然会参与查询)。添加值下的过滤器来缩小结果到只有那些感兴趣的(在这个例子中,它是创建一个WHERE子句只选择那些记录了StatusId“1”- 也就是“To Do”): Query Designer
  5. 当满意查询后点击OK。
  6. 该查询将出现在查询窗口,在这里可以运行它,运行任何其他查询相同的方式(点击!执行或按F5)

当点击OK,会发现查询已添加到工作空间。然后,可以运行它,就像任何其他查询一样。

Screenshot of query results

查询 - 不要删除它。我们将使用查询来创建SQL Server视图

SQL Server视图 - SQL Server教程

在SQL Server中,视图是被存储在数据库中的预写查询。视图是由一个SELECT语句,当你运行视图,会看到它的结果,就像打开一个表时一样。 有些人喜欢把视图称作为虚拟表。这是因为,一个视图可以拉动多个表,并汇总数据在一起并将其显示,就好像它是一个单一的表。

视图的优点

当有多个用户提供不同级别的访问权限,需要看到在数据库中(但不一定是所有数据)中的数据的各不同部分的视图,可能是有用的。视图可以执行以下操作:

  • 限制访问特定的表中的行
  • 限制访问特定的表中的列
  • 从多个表中加入列,并呈现出来,好像他们是一个单一的表的一部分
  • 呈现汇总的信息(如COUNT函数的结果)

视图语法

创建一个视图通过使用CREATE VIEW语句,其次是SELECT语句。

CREATE VIEW ViewName AS
SELECT ...

创建视图

我们以前使用的查询设计器创建两个表中选择数据的查询。现在让我们在查询并将其保存为一个名为“ToDoList”的视图。基本上,我们需要做的就是把CREATE VIEW ToDoList的AS查询,像这样的面前:

CREATE VIEW ToDoList AS
SELECT Tasks.TaskName, Tasks.Description
FROM Status INNER JOIN
Tasks ON Status.StatusId = Tasks.StatusId
WHERE (Status.StatusId = 1)

一旦运行该脚本,刷新浏览文件夹在左窗格中,你会看到视图就在左窗格中:

Screenshot of view

运行视图

所以,现在你已经创建的视图,你可以简单地查看结果选择它就像你会选择任何表。而不是输入出大SELECT语句的INNER JOIN等等,可以简单地键入select* from todolist,它会运行完整的查询: Screenshot of view results

注:也可以在视图上单击鼠标右键,并选择 "Select Top 1000 Rows".

数据更新

该视图将返回最新的数据。如果表中的数据发生变化时,视图的结果会改变过。所以,如果要添加新任务以及状态 "To Do", 下一次运行来看,这将包括在结果集中的新纪录。

修改视图

可以通过使用ALTER而不是CREATE修改现有的视图。

因此,如果我们想要更改视图使用StatusName字段,而不是StatusId,我们可以这样做:

ALTER VIEW ToDoList AS
SELECT Tasks.TaskName, Tasks.Description
FROM Status INNER JOIN
Tasks ON Status.StatusId = Tasks.StatusId
WHERE (Status.StatusName = 'To Do')

注:使用查询设计器也可以右键单击视图,然后选择设计来修改您的视图。

正如你所看到的,视图让您保存查询,以便可以做一个SELECT,再次运行它也会比较简单。但它们的确有其局限性。它们允许选择数据,但不允许执行任何业务逻辑,如条件语句等。 要做到这一点需要一个存储过程

SQL Server存储过程 - SQL Server教程

在SQL Server中,存储过程是比视图更强大。视图让我们简单地做一个SELECT查询也在可视图本身,它的工作方式是用于运行复杂的查询。 但视图并不姝真正为我们提供代码业务逻辑的能力。例如,视图不会能让我们增加条件代码(如IF语句)。幸运的是存储过程可能使用。

什么是存储过程?

存储过程是一组SQL语句编译成一个SQL。类似于在说的SQL脚本页面,在这里可以运行许多SQL脚本合为一个整体。

然而,存储过程并不仅仅是一个长脚本。这是已保存在SQL Server中明确在存储过程节点的脚本。存储过程通常包含一些业务逻辑。 例如,一个存储过程可以接受被传递给它的并针对这些参数测试使用IF语句的参数。例如,如果该参数是一个值,这样做,如果它是另一个值。

它们包含业务逻辑的能力使存储过程SQL Server的强大的一部分。存储过程可以提高性能的应用程序,因为存储过程进行解析,并尽快,因为它是建立优化,然后存储在内存中。运行通过存储过程条件的查询可以是非常快 - 相比,发送查询通过网络,到SQL Server的应用程序,遂将全部返还给它在网络上,因此它可以过滤通过它,并挑选出只是它感兴趣的记录数据。

存储过程的好处

下面是一些在使用存储过程的主要优点:

好处

说明

模块化编程

可以写一个存储过程一次,然后一次又一次地调用它,从应用程序的不同部分(甚至多个应用程序)。

性能

存储过程提供更快的代码执行和减少网络流量。更快的执行:存储过程进行解析,并为他们创造尽快优化和存储过程是存储在内存中。这意味着它会执行比从应用程序到SQL Server发送SQL多行代码快了很多。这样做需要SQL Server来编译和每次运行时优化改进你的SQL代码。减少网络流量:如果通过网络发送的SQL多行代码到你的SQL Server中,这会影响网络性能。如果你有数以百计的SQL代码行和/或你有很多活动在应用程序,这是尤其如此。运行SQL Server上的代码(作为存储过程中)消除了需要发送此代码在网络上。唯一的网络通信将提供的参数和任何查询的结果。

安全

用户无需执行任何直接的语句可以执行存储过程。因此,存储过程可以谁也不能正常访问这些任务的用户提供先进的数据库功能,但这种功能是在严格控制的方式提供。

创建一个存储过程

要创建一个存储过程,需要使用CREATE PROCEDURE语句,其次是弥补了存储过程的代码。如果存储过程将要接受参数,它们需要被包括在名称后。

CREATE PROCEDURE myStoredProcedure AS
...

OR

CREATE PROCEDURE myStoredProcedure @{Parameter Name} {data type} AS
...

示例

下面的代码创建一个存储过程被称为“LatestTasks”。它接受一个参数名为 @Count. 当调用这个存储过程,通过@count参数,它决定你想要多少行返回。下面的代码:

CREATE PROCEDURE LatestTasks @Count int AS
SET ROWCOUNT @Count
SELECT TaskName AS LatestTasks, DateCreated
FROM Tasks
ORDER BY DateCreated DESC

运行这段代码在SQL Server管理套件,会看到它被在存储过程节点创建为“LatestTasks”。

Screenshot of stored procedure in the Object Explorer

在SQL Server2014,可以在存储过程节点/文件夹中创建通过右键单击一个存储过程,选择存储过程....这将打开一个模板,这是随时可以填入自己的具体程序。

执行存储过程

现在,已经创建了存储过程,要执行它的任何时间,需要使用调用它要么执行或EXEC。如果存储过程的参数要求提供这些程序名在后面。像这样:

EXECUTE LatestTasks
EXEC LatestTasks

EXEC LatestTasks @Count = 5

示例

在下面的例子中,我们在同一时间执行存储过程两次。我们第一次调用它,我们通过@Count传递为3,第二次传递的值为5。

该截图显示,通过传递参数(和值),存储过程返回结果的基础上提供值。顶端结果集返回3行,因为我们通过值3。第二个结果集返回5行,因为我们提供一个值5:

Screenshot of stored procedure being executed

使用GUI

还可以使用图形用户界面来执行存储过程。

具体方法如下:

  1. 使用对象资源管理器,浏览到存储过程
  2. 右键单击该存储过程并选择 Execute Stored Procedure...: Initiating the execution of a stored procedure
  3. 会出现一个对话框。输入您所选择的参数值: Initiating the execution of a stored procedure
  4. 点击 OK
  5. SQL Server现在会生成SQL代码并执行存储过程。

修改存储过程

如果需要修改现有的存储过程,只需更换CREATE使用ALTER。 让我们添加一个空格之间“Latest”和“Tasks”(即“Latest Tasks”),并添加描述字段:

ALTER PROCEDURE LatestTasks @Count int AS
SET ROWCOUNT @Count
SELECT TaskName AS "Latest Tasks", Description, DateCreated
FROM Tasks
ORDER BY DateCreated DESC

系统存储过程

SQL Server包含了大量的系统存储过程,以帮助数据库管理任务。可以通过GUI执行的任务可以通过系统存储过程来完成。 例如,有些东西可以用系统存储过程的包括:

  • 配置安全帐户
  • 建立链接服务器
  • 创建一个数据库维护计划
  • 创建全文检索目录
  • 添加远程登录
  • 配置复制
  • 设置调度作业
  • 以及更多...

命名约定

扩展系统存储过程节点,一起来看看。会发现,他们的名字都开始以sp_,表明它是一个存储过程。该系统存储过程显然遵循的命名约定。

这是一个好主意,制定一个一致的命名约定存储过程(并为数据库中的所有其他对象)。

有些人前缀的存储过程usp_,另外其他人使用SQL关键字,如SELECT,INSERT,UPDATE,DELETE。其他人使用的缩写应用。

一些使用下划线的存储过程(例如,latest_tasks)在单独的单词,而其他人将使用标题的情况下(例如,LatestTasks)。

因此,这是可能的,我们的存储过程可以被命名为以下任意一种,这取决于命名约定的使用。

  • LatestTasks
  • latest_tasks
  • uspLatestTasks
  • usp_latest_tasks
  • selectLatestTasks
  • select_LatestTasks
  • select_latest_tasks
  • getLatestTasks
  • get_latest_tasks

最重要的是一致性。选择一个,并坚持下去。它会更容易,当你需要使用存储过程。 想象一下,有几十,甚至上百的存储程序,每一次执行一次,需要找到它在对象资源管理器,是否把它称为usp_LatestTasks或uspLatestTasks。

所以这是存储过程覆盖。接下来,我们了解用户登录

SQL Server服务器角色 - SQL Server教程

当我们创建一个SQL Server登录,我们必须分配登录的一个或多个服务器角色的选项。

服务器角色(不要与数据库角色混淆)可用来管理服务器上的权限。不是每个人都应该分配给服务器的角色。只有高级用户,如数据库管理员应指定一个服务器角色。

查看服务器角色

要查看在SQL Server2014管理Studio服务器角色,在对象资源管理器,展开安全文件夹:

Screenshot of viewing server roles

SQL Server 2014提供了九个固定服务器角色。被授予到固定服务器角色的权限,不能更改。

九层固定服务器角色的说明

下面是安装过程中在SQL Server2014中定义的服务器角色的解释:

服务器角色

描述

sysadmin

可以在SQL Server中执行任何活动。

serveradmin

可以设置服务器范围的配置选项和关闭服务器。

setupadmin

可以添加和使用Transact-SQL语句删除链接的服务器。 (使用SQL Server管理套件,当系统管理员成员需要。)

securityadmin

可以管理登录及其属性。他们可以GRANT, DENY和REVOKE服务器级别的权限。他们还可以GRANT, DENY和REVOKE数据库级别的权限,如果他们有机会获得一个数据库。 他们还可以重置SQL Server登录密码。

processadmin

可以结束了在SQL Server实例中运行的进程。

dbcreator

可以创建,修改,删除,并恢复所有数据库。

diskadmin

可以管理磁盘文件。

bulkadmin

可以执行BULK INSERT语句。

public

每一个SQL Server登录属于公共服务器角色。当一个服务器主体没有被授予或拒绝对受保护对象的特定权限,用户继承对象授予public权限。只有当你想提供给所有用户对象上的任何对象分配公共权限。不能改变的成员在公共权限。

一些这些角色允许执行非常特定的任务。如果只有一个小团队,很可能只使用其中的一个角色(包括系统管理员)的两个。如果有一个大的团队,那么可以使用它们。

在SQL Server2014(和SQL Server2012),可以创建用户定义的服务器角色,并添加服务器级别的权限用户定义的服务器角色。

接下来我们来看看数据库模式

SQL Server数据库模式 - SQL Server教程

在SQL Server中,数据库架构简化安全管理。模式有助于确定谁可以访问数据库对象。

数据库模式也可以作为一个命名空间。这可以防止来自不同模式的对象名称冲突。

什么是数据库模式?

数据库模式是一种逻辑分组对象,如表,视图,存储过程等。想想一个模式作为对象的容器。

可以指定一个用户登录权限的单一模式,以便用户只能访问他们被授权访问的对象。

模式可以创建和改变在数据库中,并且用户可以被允许访问的模式。 一个模式可以被任何用户所拥有,并且架构所有权转让。

创建数据库模式

要创建在SQL Server 2014数据库模式:

  1. 从对象资源管理器,浏览到安全性和打开模式节点。
  2. 右键单击架构并选择新建模式....就像这样: Creating a database schema in SQL Server 2014 Management Studio - 1
  3. 完成常规选项卡的详细信息的新模式。在这个例子中,模式名称就是维护和架构所有者的db_owner(也可以使用搜索功能找到一个所有者)。 Creating a database schema in SQL Server 2014 Management Studio - 2
  4. 点击权限将用户添加到架构
  5. 要添加用户,使用搜索...按钮,然后浏览...: Creating a database schema in SQL Server 2014 Management Studio - 4
  6. 选择用户并单击OK: Creating a database schema in SQL Server 2014 Management Studio- 5
  7. 当用户被添加,设置他们的权限。在我的例子,我授予Zoidberg用户更改,删除,插入,选择和更新权限: Creating a database schema in SQL Server 2014 Management Studio- 6
  8. 通过扩展属性选项卡中添加任何扩展属性(我保留这个空白)
  9. 点击OK.

添加一个表的新模式

现在我们有一个新的模式,我们可以添加对象,如表,视图和存储过程。例如,我们可以转移,我们在前面的教训,以新的模式中创建一个或多个表。

当我们创建了一个表(称为“Tasks”),它在默认数据库模式(“dbo”)建立。我们知道这是因为它出现在我们的对象浏览器为dbo.Tasks。

将“Tasks”表转移到“Maintenance”模式,做到以下几点:

  1. 在对象资源管理器中,请确保正在使用的数据库TaskTracker,然后用鼠标右键单击任务表并选择设计: Changing database schema for a table in SQL Server Management Studio
  2. 从设计视图,属性窗口应该出现在右侧。如果没有,按F4键显示属性窗口。
  3. 从属性窗口,更改架构到所需的模式: Changing database schema for a table in SQL Server Management Studio
  4. 可能会说称更改此对象的模式将导致目前所有的权限警告被丢弃。你确定要继续?点击OK继续。
  5. 通过右键关闭设计视图点击选项卡上的x。
  6. 当提示保存,单击"Ok"

你的表已经被转移到了“Maintenance”模式。

确认更改

确认更改:

  1. 刷新通过右键单击对象资源管理器上的表,然后单击刷新。
  2. 现在,您将看到对象资源管理器显示新的模式表(即Maintenance.Tasks): Screenshot of the table in Object Browser

SQL Server链接服务器 - SQL Server教程

SQL Server提供链接到另一个服务器的选项。这通常被用来连接到其他SQL Server数据库,但它也可以被用来连接到一个Microsoft Access数据库。这是通过链接服务器节点成为可能。

链接服务器节点可以连接到另一个数据库,通常/通常在不同的机器上运行,远程也许在不同的城市/国家。如果您需要执行分布式查询(查询远程数据库),这可能是有用的。 设置链接服务器就是相当于使用简单的SQL Server管理套件。 所有需要的就是查询远程服务器的详细信息,以及数据库。

创建链接服务器

要创建链接的服务器:

  1. 在对象资源管理器,打开服务器对象,并导航到链接服务器
  2. 右键单击链接服务器,然后选择 New Linked Server...: Creating a linked server in SQL Server Management Studio - 1
  3. 填写详细链接服务器的信息。 在本例,我连接到SQL Server称为Parrot的远程服务器,上面有一个为Paywi的z数据库。链接服务器名称是PAYROLL: Creating a linked server in SQL Server Management Studio - 2
  4. 根据安全性选项,必须向本地用户映射到用户在远程机器上的能力。在这里,本地SQL Server用户Zoidberg被映射到远程机器上的Web_User帐户。这里提供的密码必须是Web_User帐户的远程计算机上的密码。我们也有一个本地Windows域身份验证的用户映射到同一个用户在远程机器上,并设置为模拟。 Windows域身份验证的用户也是远程计算机上,因此本地用户可以简单地模拟远程用户: Creating a linked server in SQL Server Management Studio - 3
  5. 并且服务器选项可让您进一步配置为链接服务器。在这里我换了一个环境。我设置RPC输出为True。此选项使用户能够对运行链接服务器存储过程。需要注意的是在RPC选项可以存储从远程服务器到本地机器称为程序。在这种情况下,我们已经离开并且为False: Creating a linked server in SQL Server Management Studio - 4
  6. 当配置时,单击确定以创建链接的服务器。

现在应该看到新的链接服务器坐在对象资源管理器的链接服务器节点下。

Screenshot of linked server in Object Explorer

分布式查询

当配置了链接服务器,将能够运行查询等。当您运行链接服务器查询,它被称为分布式查询。

当您执行对链接服务器的分布式查询,则必须包括每个数据源来查询一个完全合格的,由四部分组成的表名。这四部分的名称应该是形式 linked_server_name.catalog.schema.object_name.

下面是一个例子:

SELECT * FROM PAYROLL.Paywiz.dbo.Employees

这个例子是基于上面的链接服务器的例子。它假定远程数据库有一个名为“dbo”模式和一个名为“Employees”表。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论