Как создать базу данных SQL Server 2008 из скрипта - PullRequest
6 голосов
/ 02 марта 2009

Я пытаюсь сделать пошаговое руководство по Entity Framework, поэтому я:

  • скачанный скрипт SQL здесь: http://www.learnentityframework.com
  • в SQL Server Management Studio, я щелкнул правой кнопкой мыши База данных, Создать базу данных, назвал ее
  • щелкните правой кнопкой мыши на новой базе данных, New Query
  • нажал «Открыть файл» и открыл файл скрипта: Create_ProgrammingEFDB1_SQLServer2008.sql
  • нажал "! Выполнить"
  • Но скрипт (756 КБ) работает уже 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 ]

5 голосов
/ 02 марта 2009

Я не знаю, что именно сделает ваш сценарий в следующем 754K, но размещенные вами строки кажутся совершенно безвредными.

Попробуйте добавить следующее в ваш скрипт:

SET STATISTICS TIME ON

Это покажет время выполнения запросов по мере их выполнения и поможет вам более точно определить причину проблемы.

4 голосов
/ 02 марта 2009

Но сценарий (756K)

Должно быть намного больше, чем просто CREATE DATABASE в сценарии, поэтому очень трудно сказать, когда сценарий выполняет.

Вы можете написать отчеты о ходе выполнения сценария обратно клиенту или использовать SQL Profiler, чтобы увидеть, какие команды выполняются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...