Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Преобразование вычисляемого столбца  [new]
SorokodumovO
Member

Откуда: Ульяновск
Сообщений: 84
Сорри за ламерский вопрос.
Но возникла необходимость преобразовать вычисляемый стобец в тип varchar c сохранением в нем имеющихся вычисленных значений.

Как сие реализовать?
9 дек 09, 18:18    [8042923]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование вычисляемого столбца  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Насчет сохранения не понял, а преобразование - например так:
create table t(value int, value_2 as value * 2)
insert into t values(23)
select * from t
go
alter table t drop column value_2
alter table t add value_2 as cast(value * 2 as varchar(20))
select * from t
go
drop table t
go

value       value_2
----------- -----------
23          46

(1 row(s) affected)

value       value_2
----------- --------------------
23          46

(1 row(s) affected)
9 дек 09, 18:38    [8043031]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование вычисляемого столбца  [new]
SorokodumovO
Member

Откуда: Ульяновск
Сообщений: 84
Паганель, немного не то. Или я не понимаю. У меня есть таблица: поле 1, поле 2, вычисляемое поле поле1+поле2.

Необходимо сделать поле 3 с типом varchar так чтобы вычесленные значения остались в этом новом поле.
9 дек 09, 19:26    [8043204]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование вычисляемого столбца  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
SorokodumovO
поле 1, поле 2, вычисляемое поле поле1+поле2.
Необходимо сделать поле 3 с типом varchar так чтобы вычесленные значения остались в этом новом поле.
create table t([поле 1] int, [поле 2] int, [вычисляемое поле] as [поле 1] + [поле 2])
insert into t values(23, 11)
select * from t
go
alter table t drop column [вычисляемое поле]
alter table t add [поле 3] as cast([поле 1] + [поле 2] as varchar(20))
select * from t
go
drop table t
go

поле 1      поле 2      вычисляемое поле
----------- ----------- ----------------
23          11          34

(1 row(s) affected)

поле 1      поле 2      поле 3
----------- ----------- --------------------
23          11          34

(1 row(s) affected)
9 дек 09, 19:33    [8043219]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование вычисляемого столбца  [new]
SorokodumovO
Member

Откуда: Ульяновск
Сообщений: 84
Паганель
SorokodumovO
поле 1, поле 2, вычисляемое поле поле1+поле2.
Необходимо сделать поле 3 с типом varchar так чтобы вычесленные значения остались в этом новом поле.
create table t([поле 1] int, [поле 2] int, [вычисляемое поле] as [поле 1] + [поле 2])
insert into t values(23, 11)
select * from t
go
alter table t drop column [вычисляемое поле]
alter table t add [поле 3] as cast([поле 1] + [поле 2] as varchar(20))
select * from t
go
drop table t
go

поле 1      поле 2      вычисляемое поле
----------- ----------- ----------------
23          11          34

(1 row(s) affected)

поле 1      поле 2      поле 3
----------- ----------- --------------------
23          11          34

(1 row(s) affected)


Командой alter table t add [поле 3] as cast([поле 1] + [поле 2] as varchar(20)) создается вычисляемое поле :(
9 дек 09, 20:16    [8043309]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование вычисляемого столбца  [new]
SorokodumovO
Member

Откуда: Ульяновск
Сообщений: 84
так как же скопировать данные из имеющегося вычисляемого столбца в новый типа varchar (max) ???
9 дек 09, 20:34    [8043346]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование вычисляемого столбца  [new]
SorokodumovO
Member

Откуда: Ульяновск
Сообщений: 84
Додумался и сделал :) Спасибо всем, кто призадумался... И не послал далеко с таким действительно "чайниковским" вопросом
9 дек 09, 20:46    [8043371]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить