利用SQLServer外部表拓展数据库存储空间

1. 什么是SQLServer外部表?

SQLServer外部表可以将其他资源中的数据跨越到SQL Server 中,使整个数据库组更加综合。这种特殊的表格可以由用户定义,它们的信息来自于多个类型的数据源,例如SQL Server, Excel, Access 或任何数据驱动的数据源。这个功能是自 SQL Server 2005 开始提供的,现在已成为一种通用的数据联接机制,支持强大和灵活的数据获取操作,消除了任何不必要的瓶颈。

2. 外部表可以拓展SQL Server数据库存储空间

SQLServer外部表具有一个特别的优势,便是它可以拓展SQL Server数据库存储空间,使得SQL Server 可以处理外部数据的访问,存储和检索。 这意味着您可以使用外部表来添加额外的属性和数据来扩展当前的数据库,而不需要购买更多的硬盘空间进行扩展。

通过将数据存储在外部表中,您可以充分利用多种数据来源的信息。例如,您可能需要将客户订单文件存储在一起(可能存储在 Excel 中),这样您可以将订单相关的所有数据放在一起,而不必在数据库中占用额外空间。

3. 创建SQLServer外部表的步骤

3.1. 创建数据源

使用SQL Server Management Studio,创建数据源以便从其他文件中读取数据。数据源可以来自不同的文件,如Excel、Access、Oracle、MySQL、文本文件等。

例如,我们可以创建一个指向 Excel 文件的数据源。在SQL Server Management Studio 中,选择“服务器对象”->“链接服务器”,然后单击链接服务器上的联机资源.右键单击链接到数据库,然后选择“新建链接服务器”并输入链接服务器选项。在“新建链接服务器”对话框中,选择“Microsoft Jet 4.0 OLE DB 驱动程序”并输入文件扩展名(.xls 格式的 Excel 文件)的路径和名称。在“安全性”页面上,选择“可弹出对话框”的“能够自由访问”选项。单击“确定”以建立此链接服务器。

3.2. 创建外部表

创建外部表时,需要注意以下几点:

选择外部数据源、架构名称和表名称。

用 SELECT 语句从外部表中选择列。

定义一个公共语言运行时(CLR)存储过程,它将负责特定的外部数据源。

以下是创建 SQLServer 外部表的示例:

USE [myDatabase]

GO

/****** Object: External Table [dbo].[myExternalTable] Script Date: 01/01/2020 11:31:11 ******/

BEGIN TRANSACTION

GO

USE [myDatabase]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE EXTERNAL TABLE [dbo].[myExternalTable](

[col1] [varchar](10) NULL,

[col2] [varchar](50) NULL,

[col3] [varchar](50) NULL,

[col4] [datetime] NULL

) WITH (

DATA_SOURCE = [myExcelSource], --数据源

LOCATION = N'sheet1$', --Excel中的工作表名称

PARSER = [ExcelParser], --运行的CLR存储过程

FORMATFILE_DATA_SOURCE = [myExcelSource], --格式文件所在的数据源

FORMATFILE = N'\\server\ExcelData\myTable.fmt', --格式文件的位置

REJECT_TYPE = EXPRESSION, -- 定义数据拒绝的行为

REJECT_VALUE = 0, -- 数据拒绝时返回的值

ERRORFILE = N'C:\Data\myExternalTable_errors.log' -- 错误文件

)

GO

COMMIT TRANSACTION

GO

4. SQLServer外部表的优点

4.1. 管理和安全性

SQL Server 外部表允许您在 SQL Server 数据库中建立单个接入点,从而可以更轻松地管理和保护所有数据。此外,可以使用集成安全性来保护和管理访问这些表格的用户。

4.2. 共享数据

SQL Server 外部表允许您从不同的数据源访问和检索数据,并将这些数据整合到单个 SQL Server 数据库中。这简化了数据的共享和管理。例如,在公司内部使用 SQL Server 外部表将客户和订单数据整合到一个数据库中,可以轻松地共享这些数据,而不必将它们保存在多个不同的数据库中。

4.3. 拓展数据库

SQL Server 外部表使得数据可以轻松地扩展到多种数据源。通过将数据存储在这些表格中,可以轻松地将数据集成到 SQL Server 数据库中,并将数据库拓展到不同的数据源。

5. 总结

SQL Server 外部表为数据管理提供了一种强大的工具。它们允许您通过将数据集成到一个统一的 SQL Server 数据库中,使数据更容易管理、共享和安全。因此,SQL Server 外部表是 SQL Server 数据库管理的一个非常重要的的部分,是每个 SQL Server 数据库管理员必须熟悉的工具。

数据库标签