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

Откуда: оттуда
Сообщений: 16
Доброго дня! При переключении секций выдается ошибка.

Warning: The specified partition 1 for the table 'dbo.orders_old' was ignored in ALTER TABLE SWITCH statement because the table is not partitioned.
Warning: The specified partition 1 for the table 'dbo.orders_before2011' was ignored in ALTER TABLE SWITCH statement because the table is not partitioned.
Msg 4942, Level 16, State 1, Line 1

ALTER TABLE SWITCH statement failed because column 'orders_guid' at ordinal 18 in table 'dbo.orders_old' has a different name than the column 'created_by' at the same ordinal in table 'dbo.orders_before2011'.

Не могу понять в чем дело. dbo.orders_before2011 создавалась с помощью ScriptTableAs из таблицы 'dbo.orders_old'. Интересно еще то, что 'orders_guid', что в эксепшене – это (CONVERT([uniqueidentifier],CONVERT([binary](16),[someid],(0)),(0))).
Не подскажет ли уважаемое сообщество, в какую сторону копать?
23 апр 13, 11:26    [14217262]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
switch partition
Guest
uniqueidentifier,



select *
from sys.columns 
where object_id = object_id ('dbo.orders_old') 
	and column_id  = 18

select *
from sys.columns 
where object_id = object_id ('dbo.orders_before2011') 
	and column_id  = 18
23 апр 13, 11:34    [14217331]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
так вы
Guest
так выложите скрипты создания обеих таблиц, мы их сравним и тоже попробуем переключить
23 апр 13, 11:34    [14217333]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
uniqueidentifier
Member

Откуда: оттуда
Сообщений: 16
switch partition,

Вот где собака порылась, действительно, пытается сопоставить не те столбцы. как с этим бороться?
23 апр 13, 11:57    [14217488]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
uniqueidentifier
как с этим бороться?

Пересоздать таблицу-приёмник, чтобы там был такой же порядок столбцов, как и в таблице-источнике.
23 апр 13, 12:17    [14217626]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
uniqueidentifier
Member

Откуда: оттуда
Сообщений: 16
Гость333,

Покажите плз, в какую сторону смотреть.
24 апр 13, 20:24    [14226860]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31437
uniqueidentifier
Гость333,

Покажите плз, в какую сторону смотреть.
В сторону пересоздания одной из таблиц
24 апр 13, 21:32    [14227135]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
uniqueidentifier
Member

Откуда: оттуда
Сообщений: 16
это понятно.
Как при создании таблицы явно указать column_id?
25 апр 13, 17:33    [14231610]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
uniqueidentifier
это понятно.
Как при создании таблицы явно указать column_id?
Никак. При создании таблицы поля в ней будут созданы в порядке, в котором они перечислены в скрипте.
25 апр 13, 17:40    [14231657]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
mike909
Member

Откуда:
Сообщений: 662
Гавриленко Сергей Алексеевич
uniqueidentifier
это понятно.
Как при создании таблицы явно указать column_id?
Никак. При создании таблицы поля в ней будут созданы в порядке, в котором они перечислены в скрипте.

+1 При создании - никак.
НО можно и
+ поизвращаться
create table dbo.Test( id int identity(1,1), val int, descr nvarchar(max) )

GO

select name, column_id
from sys.columns
where object_id = object_id('dbo.Test')

GO

alter table dbo.Test drop column val

GO

alter table dbo.Test add val int

GO

alter table dbo.Test drop column descr 

GO

alter table dbo.Test add descr nvarchar(max)

GO

select name, column_id
from sys.columns
where object_id = object_id('dbo.Test')

GO

drop table dbo.Test


Скорее всего у ТС_а из секционированной таблицы были удалены/добавлены какие-то поля.
В это случае правильней было бы пересоздать секционированную таблицу, но вот с переключением не получится из-за тех же граблей.
25 апр 13, 18:41    [14231847]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при переключении секций.  [new]
uniqueidentifier
Member

Откуда: оттуда
Сообщений: 16
Принято. Всем спасибо.
26 апр 13, 14:30    [14235293]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить