常见问答-Wiki-SQL

如何将保存的 SQL 脚本导入数据库?

解答:

Recovery Toolbox for SQL Server 支持的数据保存方式有两种:

  1. 您可以将 SQL 脚本保存到硬盘上,这些脚本会创建表格等数据库对象,并将数据插入到表格中。
  2. 您也可以在数据库中运行脚本,这些脚本会根据用户定义以 SQL 语言写入。

请注意,尽管 SQL 脚本基于数据库中的相同文件创建,但脚本本身可以不同。这是因为存在两种具有不同语法特性的询问,一种通过 ADO 直接执行服务器连接,另一种在 MS SQL Server 提供的问题分析器环境下执行 SQL( : 的用法和转到命令等)。第一种方法更可靠,第二种方法更方便。

将数据转换为脚本并保存到磁盘

  1. 1. 保存的数据映射

    如果您选择将数据保存到磁盘,Recovery Toolbox for SQL Server 会创建一个包括原始 MDF 文件名称的子目录,这个子目录在用户定义的路径中创建,所有脚本都将保存在这里。所有脚本的命名都是有规则的,其名称包含一个单词和一个数字。单词表示脚本的作用,数字表述脚本的顺序。脚本有许多类型,例如:

    • Types*.sql - 该脚本会根据用户定义创建数据类型。
    • Tables*.sql - 该脚本会创建表格。
    • Indexes*.sql - 该脚本会创建主关键字和索引。
    • ForeignKeys*.sql - 该脚本会创建外来键。
    • Procedure*.sql - 该脚本会创建存储程序。
    • Function*.sql - 该脚本会根据用户定义创建函数。
    • View*.sql - 该脚本会创建视图。
    • Triggers*.sql - 该脚本会创建事件触发器。
    • Data*.sql - 该脚本会将数据插入表格。

    脚本序列号不包含任何有用的数据,也不显示脚本执行顺序或其它任何信息。它只是用来分隔数据,并将其保存到一些小文件,而不是一个大文件中。用户可以用 SQL 脚本定义文件的最大容量。此外,用户需要注意数据文件的编号。同时应该注意,每个数据类型文件只能包含一个表格数据。带序列号的文件包含每个表格的所有数据。

    注意: 如果某些文件的编号丢失,意味着有些表格不包含任何数据。
  2. 2. 脚本执行顺序

    在这一节中您可以看到建议的脚本执行顺序:

    脚本执行顺序取决于现有数据和表格结构限制。请特别注意以下因素:

    1. 如果要创建一个次级关键字,请指定相应的主关键字。基于这一状况,这些操作会保存到不同文件中,以该顺序执行。
    2. 在生成索引和二级关键词前,程序会填写表格。该操作具有强制性,因为填写完定义二级关键词表格后会进行参照完整性检查。如果在填写主关键字表格前即填写了次级关键字表格,会发生错误。此外,该方法具有另一个特性。如果恢复的术语与主关键字、唯一索引等发生冲突,表格仍然会被填写,但不会创建限制(索引、主关键字等)。如果用户需要实现其它性能,可以自行选择脚本执行顺序。
    3. 程序、函数、视图和事件触发器对象之间有着复杂和微妙的依存关系,将其创建在同一数据库中会有一定困难。程序可能涉及其它程序,视图可能调用函数,事件触发器可能适用于所有对象。这就是为什么程序并不能帮助解决混乱的局面。因此用户应该手动地找出所有依存关系,以需要的顺序启动 SQL 脚本。另一种可能是多次执行包括在该组中的所有脚本,直至所有错误提示都消失。
  3. 3. Install.bat 文件

    Install.bat 文件用于确保所有脚本都能够自动运行。该文件会执行以前由工具保存的所有脚本。在应用到数据库时,脚本执行顺序是相同的。这个批处理文件需要安装 isqlw 实用程序,是 MS SQL Server 客户端的组成部分。请在命令行中为 install.bat 文件指定服务器名称、数据库名称、用户名和密码等参数。例如: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword

    注意:
    1. 参数应用空格隔开。如果参数本身包含空格,应该加上双引号。
    2. 参数顺序不能修改。
    3. 如果 install.bat 不带参数执行,您将看到一个怎样启动文件的简短指南。
  4. 4. InstallTrusted.bat

    如果您借助于Windows用户账户使用Microsoft SQL Server 授权,可以用 InstallTrusted.bat文件。

    InstallTrusted.bat文件有两个参数: Server name, Database name。使用例子: installtrusted.bat SQLServer SQLDatabase。 关于授权通过Windows用户账户的详细信息就在这儿: https://docs.microsoft.com/zh-cn/sql/relational-databases/security/authentication-access/principals-database-engine?view=sql-server-2017