Функция раздела базы данных (SQL Server 2008) - PullRequest
1 голос
/ 02 ноября 2009

HI, Я хочу написать раздел SQL Server 2008 для моей системы управления автопарком. Я хочу написать функцию разбиения таким образом, чтобы --values ​​(номер транспортного средства), например, mh-30-q-126, mh-30-a-126, mh-12-fc-126, были перемещены в соответствующий раздел, в зависимости от средних значений, таких как, q, a, fc соответственно

Моя пробная функция: -

CREATE PARTITION FUNCTION [partition](varchar(20))
 AS RANGE RIGHT  
FOR VALUES ('%a%', '%G%', '%Z%')  

эта функция перемещает все (каждое значение) данные в раздел 4.

 CREATE PARTITION FUNCTION [partition](varchar(20))
 AS RANGE RIGHT 
FOR VALUES ('a', 'G', 'Z')   

Этот раздел не удовлетворяет меня с точки зрения того, где я хочу отсортировать значения, находящиеся посередине, например. Mh-30-q-126 .. здесь я хочу указать значение "q", чтобы перейти к соответствующему разделу ,,, Скажите, пожалуйста, скажите, как написать эту функцию

1 Ответ

1 голос
/ 02 ноября 2009

Вы не можете напрямую из-за того, как PARTITION работает

"border_value" является константой, и вы не можете использовать LIKE.

Все, что я могу предложить, - это вычисляемый столбец, который извлекает значения, которые вы хотите, и вы разбиваете на них. Однако у вас могут быть значения, которые не поддаются последовательному анализу.

mh-30-q-126
mh-30-a-126
mh-12-fc-126

Примечание: я не пробовал это. Я бы обычно делился на свидания или что-то в этом роде.

Однако я бы также не разбивал разделы, если бы мне не пришлось, например, 100 миллионов строк + из-за подразумеваемых накладных расходов при разделении. Вам нужен раздел?

...