#sql #sql-server #ddl
#sql #sql-сервер #ddl
Вопрос:
Контекст
Я пытаюсь создать несколько таблиц с помощью команд SQL. После выполнения Create
команд я не получаю визуальной обратной связи в Microsoft SQL Server Management Studio. Другими словами: я не вижу никаких записей таблицы в моей базе данных. Когда я создаю базу данных в том же файле SQL, она создается без проблем.
Инструкции SQL
DROP DATABASE IF EXISTS CheckSum;
CREATE DATABASE CheckSum;
DROP TABLE IF EXISTS Translation;
CREATE TABLE Translation (
ID int NOT NULL IDENTITY(1,1),
LanguageName varchar(50),
PRIMARY KEY (ID)
);
DROP TABLE IF EXISTS NationalBank;
CREATE TABLE NationalBank (
ID int NOT NULL IDENTITY(1,1),
Abbreviation varchar(1),
NationalBankName varchar(100),
CountryAbbreviation varchar(1),
PRIMARY KEY (ID)
);
DROP TABLE IF EXISTS Country;
CREATE TABLE Country (
CountryID int NOT NULL,
LanguageID int,
CountryName varchar(100),
Abbreviation varchar(1),
PRIMARY KEY (CountryID)
);
DROP TABLE IF EXISTS Code;
CREATE TABLE Code (
Code int NOT NULL,
LanguageID int,
CodeMessage varchar(255),
PRIMARY KEY (Code, LanguageID)
);
INSERT INTO Translation (LanguageName) VALUES ('Deutsch');
INSERT INTO Translation (LanguageName) VALUES ('English');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (1, 1, 'Großbritannien', 'j');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (2, 1, 'Österreich', 'n');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (3, 1, 'Irland', 't');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (4, 1, 'Deutschland', 'x');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (5, 1, 'Schweden', 'k');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (6, 1, 'Niederlande', 'p');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (7, 1, 'Frankreich', 'u');
INSERT INTO COUNTRY (CountryID, LanguageID, CountryName, Abbreviation) VALUES (8, 1, 'Griechenland', 'y');
/* ... */
Дополнительная информация
- Когда я удаляю
DROP TABLE IF EXISTS
и перезапускаю его. Я получаю сообщение об ошибкеThere is already an object named 'Translation' in the database.
- Обновление и перезапуск не помогли. У меня эта проблема уже около двух недель.
- Я пытаюсь перенести эти таблицы в C # Entity Framework, но графический интерфейс там тоже не показывает мне таблицы.
- Создание таблиц с помощью графического интерфейса MSSMS работает.
Я был бы очень признателен за совет о том, как решить эту проблему. У меня, конечно, нет большого опыта работы с SQL 🙂
Комментарии:
1. Если вы создаете базу данных, вы не сразу подключаетесь к ней. Таким образом, вы, вероятно, создаете эти таблицы в
master
(или в любой другой базе данных, к которой вы были подключены). Измените свой скрипт наUSE CheckSum
after создание базы данных.2. Большое спасибо! Я щелкнул правой кнопкой мыши по базе данных и выбрал
New Query
. Таким образом, он автоматически подключился к нужной мне базе данных. Теперь это работает! Редактировать:USE
работает одинаково хорошо3. На панели инструментов также есть выпадающий список для выбора базы данных, в которой выполняется запрос. Вы не ограничены только открытием окна запроса из базы данных.