Это, наверное, глупо просто, но по какой-то причине у меня возникают проблемы с тем, чтобы заставить его работать.У меня есть типичный сценарий импорта, который я пытаюсь запустить на сервере MS SQL с одним основным пользователем (в отличие от одного пользователя с доступом только к одной базе данных).
Когда я запускаю сценарий .SQL,он создает базу данных, а затем начинает создавать таблицы.Вот где это становится интересным.Это не создание баз данных под БД, которую я только что сделал.Он выбрасывает таблицы в представлении «Системные базы данных» и не ограничивает создание таблицы только что созданной БД.
Я пробовал:
CREATE TABLE table_name
CREATE TABLE database_name.table_name
Возможно, я что-то упускаюдействительно легко.Я обычно не сталкиваюсь с этим с MySQL, когда один пользователь сопоставлен с одной базой данных, так как пользователь может видеть только одну базу данных, поэтому MySQL предполагает, что она должна быть единственной, с которой нужно работать.
Разница в том, что я использую MSSQL 2008, и, возможно, он работает немного по-другому, и я что-то упускаю.Спасибо за вашу помощь!
Пробовал и это тоже.Неудачно.Говорит, что база данных не существует, когда она пытается создать таблицу.Я думаю, что, читая сценарий запроса сверху вниз, он сначала создаст базу данных, а затем попытается создать таблицу позже.
CREATE DATABASE DATABASENAME;
CREATE TABLE DATABASENAME.dbo.TABLENAME
(
field_one VARCHAR(100) NOT NULL,
field_two INT NOT NULL,
PRIMARY KEY(field_one)
)
Это рабочий пример после того, как все это выяснилииз.Этот синтаксис работает хорошо, и мне не нужно указывать путь к DBO перед именами таблиц таким образом.Очиститель и получил мне результаты, которые я искал.Спасибо всем.
IF Db_id('DBNAME') IS NULL
CREATE DATABASE DBNAME;
GO
USE [DBNAME];
GO
CREATE TABLE TABLENAME
(
COL1 VARCHAR(100) NOT NULL,
COL2 INT NOT NULL,
PRIMARY KEY(COL2)
)
INSERT INTO TABLENAME
(COL1,
COL2)
VALUES('1234',1001),
('1234',1002),
('1234',1003),
('1234',1004)
В основном он просто проверяет, создана ли база данных, прежде чем делать что-либо еще, а затем устанавливает базу данных USE на ту, с которой я работаю.Все остальное просто обычный SQL, так что веселитесь.Ура!