связать 2 столбца в таблице, которую создаю.
От: cse  
Дата: 10.07.13 18:31
Оценка:
Здравствуйте,
Простое задание, но я только начал с БД работать...
Есть 2 таблицы. Вот первая:


create table clients_type{
name varchar(15)
 };


Вот вторая:


create table clients(
id INT IDENTITY(1,1) PRIMARY KEY,
 name varchar(30),
 ЗДЕСЬ должен быть 3й столбец, который может иметь значение только из первой таблицы. Тобишь одно из значений name.
);


Подскажите, как сделать.
-------------------------
Сергей Ч.
Нижний Новгород
Re: связать 2 столбца в таблице, которую создаю.
От: paucity  
Дата: 10.07.13 18:45
Оценка:
Здравствуйте, cse, Вы писали:

Гугли "foreign key"
Re: связать 2 столбца в таблице, которую создаю.
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.07.13 18:54
Оценка: 3 (1)
Здравствуйте, cse, Вы писали:

cse> Здравствуйте,

cse> Простое задание, но я только начал с БД работать...
cse>Есть 2 таблицы. Вот первая:


cse>
cse>create table clients_type{
cse>name varchar(15)
cse> };

cse>


cse>Вот вторая:



cse>
cse>create table clients(
cse>id INT IDENTITY(1,1) PRIMARY KEY,
cse> name varchar(30),
cse> ЗДЕСЬ должен быть 3й столбец, который может иметь значение только из первой таблицы. Тобишь одно из значений name.
cse>);

cse>


cse> Подскажите, как сделать.

create table clients_type
(
  id int identity primary key,
  name varchar(15) not null
)
create table clients (
  id int identity primary key,
  name varchar(30) not null,
  type int not null foreign key references clients_type(id)
)
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: связать 2 столбца в таблице, которую создаю.
От: londinium Украина  
Дата: 10.07.13 18:54
Оценка: 2 (1)
Здравствуйте, cse, Вы писали:

cse> Здравствуйте,

cse> Простое задание, но я только начал с БД работать...
cse>Есть 2 таблицы. Вот первая:


cse>
cse>create table clients_type{
cse>name varchar(15)
cse> };

cse>


cse>Вот вторая:



cse>
cse>create table clients(
cse>id INT IDENTITY(1,1) PRIMARY KEY,
cse> name varchar(30),
cse> ЗДЕСЬ должен быть 3й столбец, который может иметь значение только из первой таблицы. Тобишь одно из значений name.
cse>);

cse>


cse> Подскажите, как сделать.





IF OBJECT_ID(N'dbo.ClientsType',N'U')IS NOT NULL
  DROP TABLE dbo.ClientsType;
CREATE TABLE dbo.ClientsType
(
  ClientType_ID SMALLINT NOT NULL IDENTITY(1,1) PRIMARY KEY,
ClientTypeDescription VARCHAR(50) NOT NULL
)

IF OBJECT_ID(N'dbo.Clients',N'U')IS NOT NULL
  DROP TABLE dbo.Clients
CREATE TABLE dbo.Clients
(
  Client_ID INT NOT NULL IDENTITY(1,1)PRIMARY KEY,
  ClientName VARCHAR(500)NOT NULL,
  ClientType_ID SMALLINT NOT NULL
)
ALTER TABLE dbo.Clients ADD CONSTRAINT FK_ClientsClientType FOREIGN KEY(ClientType_ID)REFERENCES dbo.ClientsType(ClientType_ID);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.