Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ms sql как добавить в таблицу новую колонку после конкретной колонки. (число прочтений - 15391 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
ms sql как добавить в таблицу новую колонку после конкретной колонки.
04. Октября 2011 :: 06:33
Печать  
есть таблица
create table t_x (
int a,
int b,
int c
)
В ней много строк.
как добавить в эту таблицу столбец x чтобы он был после
столбца b.
т.е чтобы получилось
create table t_x (
int a,
int b,
int x,
int c
)



Реальная задача. На одной из ПБ  1с sql очень мало места.
Новый диск не купят до нового года.
Остается либо мучиться при добавлении полей
либо не вносить изменений расширяющие большие таблицы.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ms sql как добавить в таблицу новую колонку после конкретной колонки.
Ответ #1 - 04. Октября 2011 :: 06:54
Печать  
разве что копия таблицы с нужным порядком столбцов, в неё всё заливаешь запросом из старой, старую грохаешь, новую переименовываешь.
А зачем это всё ?

http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/f1281533-ad45-4...

смотри внизу ответ от Ицика Бен Гана:
Цитата:
-- original table

create table dbo.t(a int, b int, c int);



insert into dbo.t(a, b, c)

  values(10, 20, 30);

go



-- need to add column x after a

begin tran



alter table dbo.t add x int;

go

exec sp_rename 'dbo.t', 't_';

go

create view dbo.t with view_metadata

as



select a, x, b, c

from dbo.t_;

go



commit tran



select * from t;



a           x           b           c

----------- ----------- ----------- -----------

10          NULL        20          30

Cheers
-- BG

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ms sql как добавить в таблицу новую колонку после конкретной колонки.
Ответ #2 - 04. Октября 2011 :: 07:02
Печать  
Eprst писал(а) 04. Октября 2011 :: 06:54:
разве что копия таблицы с нужным порядком столбцов, в неё всё заливаешь запросом из старой, старую грохаешь, новую переименовываешь.
А зачем это всё ?


так так и делаю.
причина написана в subj.( в одной из пб урбд нет места на диске для смены конфигурации обычным способом и в ближайшее время место не предвидится ).

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ms sql как добавить в таблицу новую колонку после конкретной колонки.
Ответ #3 - 04. Октября 2011 :: 07:06
Печать  
(Eprst) речь об 1с sql базе.
в ней важен порядок столбцов.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ms sql как добавить в таблицу новую колонку после конкретной колонки.
Ответ #4 - 04. Октября 2011 :: 07:09
Печать  
Ну ясно, мот тебе вьюшку сделать, как BG советует ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ms sql как добавить в таблицу новую колонку после конкретной колонки.
Ответ #5 - 04. Октября 2011 :: 07:13
Печать  
Eprst писал(а) 04. Октября 2011 :: 07:09:
Ну ясно, мот тебе вьюшку сделать, как BG советует ?

задача поменять конфигурацию 1сsql базы при добавлении
в шапку документа нового реквизита ( из-за полей неогр длины и сумм колонок) этот реквизит не последний в таблице sql
таких документов много
и на диске мало свободной памяти для еще одной копии этой таблицы как делает 1с - создает таблицу <имя_NEW> - туда построчно все пишется потом исходная ьаблица удаляется новая переименовывается.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ms sql как добавить в таблицу новую колонку после конкретной колонки.
Ответ #6 - 04. Октября 2011 :: 07:20
Печать  
Ну еще вариант - добавить столбец и по-очереди с предпоследнего кидать в последний все значения + тип столбца править перед этим и имя его.. И т.д. до нужного столбца.
Но блин, гемморно Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать