如何从脚本创建SQL Server 2008数据库

时间:2009-03-02 15:33:20

标签: sql-server

我正在尝试进行实体框架演练,所以我:

  • 在此处下载了SQL脚本:http://www.learnentityframework.com
  • 在SQL Server Management Studio中,我右键单击了Database,Create Database,将其命名为
  • 右键单击新数据库New Query
  • 点击“打开文件”并打开脚本文件:Create_ProgrammingEFDB1_SQLServer2008.sql
  • 点击“!执行”
  • 但剧本(756K)现在已经运行了10分钟,仍然说“正在执行......”

我的问题是:

  • 这是标准方式将SQL脚本读入SQL Server吗?
  • 是否应该采取这么长的?这就是我在MySQL / PHPMyAdmin中的表现,它可能需要几秒钟,所以我假设我做的不对。

这是脚本的开头,我更改了文件路径,使它们指向正确的.mdf和.ldf文件:

****/

--PART ONE  CREATE THE DATABASE. Note the file paths in the first few commands. 
--Change them for your own computer.--
USE [master]
GO

    /****** Object:  Database [ProgrammingEFDB1]    Script Date: 01/28/2009 10:17:44 ******/
    CREATE DATABASE [ProgrammingEFDB1] ON  PRIMARY 
    ( NAME = N'ProgrammingEFDB1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\ProgrammingEFDB1.mdf' , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
     LOG ON 
    ( NAME = N'ProgrammingEFDB1_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\ProgrammingEFDB1_log.LDF' , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
    GO

    ALTER DATABASE [ProgrammingEFDB1] SET COMPATIBILITY_LEVEL = 90
    GO

    IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
    begin
    EXEC [ProgrammingEFDB1].[dbo].[sp_fulltext_database] @action = 'disable'
    end
    ...

解答:

我已经创建了一个具有相同名称的数据库,因此它试图创建一个已经存在的数据库,因为某些原因导致它挂起。我删除了该数据库,重新编写了脚本,并在3秒内成功完成。

2 个答案:

答案 0 :(得分:5)

我不知道你的脚本在下一个754K中做了什么,但是你发布的行看起来非常无害。

尝试在脚本中添加以下内容:

SET STATISTICS TIME ON

这将显示运行时的查询执行时间,它将帮助您更准确地找到问题。

答案 1 :(得分:4)

  

但脚本(756K)

必须远远超过脚本中的CREATE DATABASE,所以很难说脚本何时出现。

您可以将脚本中的进度报告写回客户端,或使用SQL事件探查器查看正在执行的命令。