#sql #sql-server #tsql
Вопрос:
Я пытаюсь выполнить следующее:
CREATE TABLE *table name*
[Id] int,
[Country] [dbo].[Country] NULL,
more columns...CONSTRAINTS
Таблица [dbo].[Country]
существует и заполнена, но SSMS помечает [Country] [dbo].[Country] NULL
ее с ошибкой
Столбец [Страна] имеет недопустимый тип данных
и терпит неудачу с сообщением
Столбец, параметр или переменная #8: Не удается найти тип данных dbo.Страна
когда я запускаю инструкцию.
Комментарии:
1. Это верно.
NULL
это не тип данных. Каким[Country] [dbo].[Country]
должен быть тип данных? Числовой? Струна? Двоичный?2. Каждый столбец должен быть определенного типа —
INT
BIT
,VARCHAR(n)
и т.д. — какой типCountry
должен быть?? Вы не можете использовать другие имена таблиц в качестве типов данных….3. Пожалуйста, ознакомьтесь с официальными документами
Ответ №1:
В основном вы хотите ссылаться на первичный ключ таблицы Country
, создавая таким образом внешний ключ. Ваш Country
столбец должен иметь тот же тип данных, что и первичный ключ в Country
таблице.
Комментарии:
1. Это заставило меня вернуться к исходной таблице, из которой я создал сценарий СОЗДАНИЯ ТАБЛИЦЫ. Генератор сценариев создал [страну] [dbo]. Колонка [Страна]. Глядя на оригинал, я думаю, что в генераторе может быть сбой, так как имя столбца — [Страна], имя таблицы [dbo]. [Страна] и ключевое поле [Страна] одинаковы. Когда я изменил свой скрипт на тип ключевого поля столбца [Страна], он запустился. Спасибо.