Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Пишу запрос на создание БД и таблиц в ней  [new]
exw777
Member

Откуда:
Сообщений: 41
CREATE DATABASE snapshot2
ON 
( 
  NAME = 'snapshot_data',
  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\snapshot2.mdf',
  SIZE = 10MB,
  MAXSIZE = 10GB,
  FILEGROWTH = 5MB 
 )
LOG ON
( 
  NAME = 'snapshot_log',
  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\snapshot2.ldf',
  SIZE = 10MB,
  MAXSIZE = 10GB,
  FILEGROWTH = 5% 
 )
USE snapshot2
CREATE TABLE machine_def
(
  m_id int,
  machine_num int,
  pc_name nvarchar(255),
  usr_name nvarchar(255),
  m_note nvarchar(255)
)
DROP DATABASE snapshot2

первым делом подсвечивается ошибка что не найдена база CREATE TABLE machine_def (так как еще не создана)
Далее оказывается что без последней строчки (которая drop database), запрос выполняется только со второй попытки.
Далее если всё же выполнить только этот последний запрос на удаление, то удалить БД нельзя так как выскакивает
Сообщение 3702
Невозможно удалить базу данных "snapshot3", так как она используется в данный момент.

Приходится перезапускать сервер.
Подскажите как сделать чтобы можно было выполнить все эти операции за один запрос (в учебных целях)
28 мар 14, 12:11    [15799852]     Ответить | Цитировать Сообщить модератору
 Re: Пишу запрос на создание БД и таблиц в ней  [new]
Glory
Member

Откуда:
Сообщений: 104751
exw777
Приходится перезапускать сервер.

Поставьте между командами GO. Это разделитель пакетов в утилитах MS
28 мар 14, 12:13    [15799865]     Ответить | Цитировать Сообщить модератору
 Re: Пишу запрос на создание БД и таблиц в ней  [new]
exw777
Member

Откуда:
Сообщений: 41
Glory,
Если с первого раза выполнить два запроса, даже при наличии GO -
Сообщение 233, уровень 20, состояние 0, строка 0
Ошибка на транспортном уровне при отправке запроса серверу. (provider: Shared Memory Provider, error: 0 - С обоих концов канала отсутствуют процессы.)

Второе его же выполнение проходит успешно на база становится занята..
28 мар 14, 12:22    [15799941]     Ответить | Цитировать Сообщить модератору
 Re: Пишу запрос на создание БД и таблиц в ней  [new]
Glory
Member

Откуда:
Сообщений: 104751
exw777
Если с первого раза выполнить два запроса

вы где все это выполняете то ?

exw777
Второе его же выполнение проходит успешно на база становится занята..

Разумеется занята. Вы же сами выполнили команду USE snapshot2
28 мар 14, 12:24    [15799961]     Ответить | Цитировать Сообщить модератору
 Re: Пишу запрос на создание БД и таблиц в ней  [new]
exw777
Member

Откуда:
Сообщений: 41
Glory,

Сделал запрос чуть по-другому, сообщение перестало появляться, USE использовал для того, чтобы таблицы добавлялись не в системную БД master а напрямую в БД snapshot. Если команда USE она занимает базу, какой командой выполнить отсоединение? или вместо USE есть другие варианты?
28 мар 14, 12:36    [15800060]     Ответить | Цитировать Сообщить модератору
 Re: Пишу запрос на создание БД и таблиц в ней  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 612
exw777,

можно так

IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'snapshot_data')
BEGIN
	CREATE DATABASE ...
END
GO
...
28 мар 14, 12:44    [15800113]     Ответить | Цитировать Сообщить модератору
 Re: Пишу запрос на создание БД и таблиц в ней  [new]
Glory
Member

Откуда:
Сообщений: 104751
exw777
Если команда USE она занимает базу, какой командой выполнить отсоединение?

выбрать другую базу
28 мар 14, 12:47    [15800142]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить