Попытка СОЗДАТЬ ТАБЛИЦУ в SQL Server с столбцом табличного значения

#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]. [Страна] и ключевое поле [Страна] одинаковы. Когда я изменил свой скрипт на тип ключевого поля столбца [Страна], он запустился. Спасибо.