2016-04-17 4 views
0

Возможно ли, чтобы столбец наследовал его значения из другого столбца идентификации в той же таблице?Наследование столбцов SQL Server

Update

У меня есть столбец ID личности и другой столбец Code. Я хочу, чтобы code был доступен для редактирования с первичным унаследованным значением из столбца ID.

+0

Можете ли вы объяснить, с какой-то образец данных, пожалуйста? –

+1

Ваш вопрос непонятен. Укажите пример ваших данных и то, что вы хотите достичь. –

ответ

1

Да, вы можете указать вычисленный столбец (необязательно, сохраненный) в зависимости от значения вашего столбца идентификации. Пример:

create table IdentityTest 
(
    PkId INT NOT NULL IDENTITY(1, 1), 
    SomeInfo VARCHAR(20) NOT NULL, 
    OtherColumn AS PkId + 1 PERSISTED 
) 

insert into IdentityTest (SomeInfo) 
values ('etc') 

select * from IdentityTest 
-- this returned: 
-- 1 etc  2 

Конечно, есть некоторые ограничения/ограничения, как указано here.

[EDIT] Основываясь на дополнительных деталях, предоставляемых OP, вычисленный столбец может иметь тип VARCHAR. Пример:

create table IdentityTest 
(
    PkId INT NOT NULL IDENTITY(1, 1), 
    SomeInfo VARCHAR(20) NOT NULL, 
    Code AS 'Code ' + CAST((PkId + 1) AS VARCHAR(32)) PERSISTED 
) 
+0

делает тип OtherColumn равным int или я могу указать тип –

+0

Вычисленный тип столбцов выводится при оценке выражения. Например, вы можете получить выражение VARCHAR, подобное следующему: 'OtherColumn AS CAST ((PkId + 1) AS VARCHAR (32)) + '- и т. Д. PERSISTED'. Persisted не требуется, но позволяет добавить индекс для повышения производительности ваших запросов. Конечно, ценой лишнего пространства. – Alexei

0

Я извиняюсь, я, возможно, не понял вопрос очень хорошо, но если вы имеете в виду освежающие значение во всей таблице, вы не могли бы просто использовать UPDATE?

Пример:

UPDATE Persons 
SET Age='34' 
WHERE Name='John Smith'; 

Но если вы имеете в виду копирования все из одной колонки в другую, UPDATE также будет работать:

UPDATE secondTable 
SET secondTable = firstTable 
Смежные вопросы