Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2013, 16:47   #1
Dimastiks
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 20
По умолчанию Имя базы данных по умолчанию при выполнении скрипта

Здравствуйте!Я написал скрипт который создает: бд,ограничения и заполняет первичными данными, но есть небольшая проблема!По умолчанию на сервере стоит бд - master, я знаю, что можно в файл подключить оператор USE [база данных], но данный оператор не станет работать, так как фактически бд c таким именем нету. Поэтому для работы скрипта необходимо чтобы данная база уже существовала. Такое решение меня не устраивает. Может кто нибудь посоветовать как решить эту проблему! Буду очень признателен! Спасибо!!!
Dimastiks вне форума Ответить с цитированием
Старый 05.04.2013, 17:23   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что, и так не пашет?
Код:
CREATE DATABASE MyBase ...
USE MyBase
...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.04.2013, 17:23   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вам сначала нужен скрипт по созданию базы, а уж потом юз делать.
eval вне форума Ответить с цитированием
Старый 05.04.2013, 17:28   #4
Dimastiks
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Что, и так не пашет?
Код:
CREATE DATABASE MyBase ...
USE MyBase
...
................................... ...............
нет, не работает. Выдает ошибку так как до момента запуска скрипта команда - USE MyBase показывает ошибку что базы нету
Dimastiks вне форума Ответить с цитированием
Старый 05.04.2013, 17:29   #5
Dimastiks
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 20
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
вам сначала нужен скрипт по созданию базы, а уж потом юз делать.
В том то и дело как вы запустите скрипт без ошибок если юз говорит что базы нету! мне нужно чтобы все было в одном файле и работало за раз

Последний раз редактировалось Dimastiks; 05.04.2013 в 17:32.
Dimastiks вне форума Ответить с цитированием
Старый 05.04.2013, 17:32   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

какая субд?
eval вне форума Ответить с цитированием
Старый 05.04.2013, 17:44   #7
Dimastiks
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 20
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
какая субд?
ms sql server 2008
Dimastiks вне форума Ответить с цитированием
Старый 05.04.2013, 18:04   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Чем запускаете скрипт?
Цитата:
Выдает ошибку так как до момента запуска скрипта команда - USE MyBase показывает ошибку что базы нету
С этим не понятно, как может давать ошибку до момента запуска?

Возможно, что #2 и не пашет, не проверял, завтра не забуду - проверю

ADD

А такой вариант не пробовали
Код:
DECLARE @s varchar(1000)
CREATE DATABASE MyBase ...
SET @s='USE MyBase'
EXEC (@s)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.04.2013 в 18:16. Причина: Исправил ошибку
Аватар вне форума Ответить с цитированием
Старый 08.04.2013, 12:33   #9
Dimastiks
Пользователь
 
Регистрация: 02.08.2012
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Чем запускаете скрипт?
С этим не понятно, как может давать ошибку до момента запуска?

Возможно, что #2 и не пашет, не проверял, завтра не забуду - проверю

ADD

А такой вариант не пробовали
Код:
Код:
DECLARE @s varchar(1000)
CREATE DATABASE MyBase ...
SET @s='USE MyBase'
EXEC (@s)
Извините что долго не отвечал...дела были. Попробовал.
Код:
DECLARE @s nvarchar(100)
SET @s='USE [Individual_Task]'
if not exists(select * from sys.databases where name = 'Individual_Task')
begin
 CREATE DATABASE Individual_Task
end
EXEC (@s)


CREATE TABLE [Mark]
(
[ID] [int] IDENTITY(1,1) not null PRIMARY KEY,
[name] [varchar](max) NULL, 
[Task_ID] [int] NOT NULL
    
)

Я весь код не копировал....но смысл таков что даже с таким кодом он мне таблицу (Mark) записывает в бд master а должен в Individual_Task

Последний раз редактировалось Stilet; 08.04.2013 в 13:08.
Dimastiks вне форума Ответить с цитированием
Старый 08.04.2013, 12:53   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

use master
go
create database db ...
go
use db
go
create table tb ...
go
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имя файла при переносе данных из других файлов Надежда1970 Microsoft Office Excel 12 23.09.2012 14:45
Сохранение данных при переподключении базы Dozent БД в Delphi 13 21.04.2012 21:55
Ошибка при создании Базы Данных YaMolekula C/C++ Базы данных 3 31.10.2011 16:03
Ошибка при долгом выполнении скрипта. Abuhamed PHP 2 07.04.2011 20:33
Ошибка тайм-аута при выполнении долгого скрипта motorway Microsoft Office Excel 2 03.10.2010 00:14