тем, кто думает, распределенные системы не позволяют авторитетные копии обратите внимание на то, что существует много мест, где распределенные системы имеют авторитетные копии, идеальным примером является, вероятно, дерево ядра Linus. Уверенный у большого количества людей есть их собственные деревья, но почти все они текут к дереву Linus.
, Который сказал, что я использую, чтобы думать, что распределил SCM's, были только полезны для большого количества разработчиков, делающих разные вещи, но недавно решили, что что-либо, централизованный репозиторий может сделать распределенный, может добиться большего успеха.
, Например, скажите, что Вы - сольный разработчик, работающий над Вашим собственным персональным проектом. Централизованный репозиторий мог бы быть очевидным выбором, но рассмотреть этот сценарий. Вы вдали от доступа к сети (на плоскости, в парке, и т.д.) и хотите работать над своим проектом. У Вас есть своя локальная копия, таким образом, можно сделать, хорошо работают, но Вы действительно хотите фиксировать, потому что Вы закончили одну функцию и хотите идти дальше другому, или Вы нашли, что ошибка зафиксировала или что бы то ни было. Дело в том, что с централизованным repo Вы заканчиваете или делающий пюре из всех изменений вместе и фиксирующий их в нелогическом changeset, или Вы вручную разделяете их позже.
С распределенным repo Вы идете на обычный бизнес, фиксацию, движение, когда у Вас есть доступ к сети снова, Вы продвигаете к своему "одному истинному repo", и ничто не изменилось.
Не говоря уже о другой хорошей вещи о распределенном repos: полная история, доступная всегда. Необходимо ли посмотреть на журналы пересмотра когда далеко от сети? Необходимо ли аннотировать источник, чтобы видеть, как ошибка была представлена? Все возможные с распределенным repos.
не полагайте, что распределенный по сравнению с централизованным о владении или авторитетных копиях или чем-либо как этот. Действительность распределяется, следующий шаг в эволюции SCM's.
Если вы работаете с CE 3.5, поддерживающим TOP и OUTER APPLY , попробуйте следующий оператор:
SELECT texts.id, SUBSTRING(texts.text_column, number*100+1, 100)
FROM
(SELECT texts.id, texts.text_column, (99+LEN(texts.text_column))/100 AS l
FROM texts) AS texts
OUTER APPLY
(SELECT TOP(l) number
FROM master.dbo.spt_values val
WHERE name IS NULL
ORDER BY number) n
100 (и 99) - это длина текста, которую я использовал для тестирования в моем данные.
Согласно этому http://msdn.microsoft.com/en-us/library/ms171931.aspx вам не повезло с использованием типа XML в SQL CE . Его просто не существует. Вы по-прежнему получаете ntext-поле BLOB размером 2 ГБ, но это не помогает.
select ... поскольку xml работает в запросе ce, но похоже, что Grid по-прежнему усекает его как ntext. Чтобы проверить, создайте таблицу с именем Test с символом как nvarchar (4000) и текстом как ntext-полями. Используйте следующие операторы, чтобы заполнить данные и вернуть их:
select char, text from test as xml
insert into test (char, text) values (replicate ('A', 4000), replicate ('b', 4000) + replicate ('B', 4000))
Я получаю усечение обоих полей примерно в одном и том же месте в режиме сетки, что предполагает усечение намного меньше 65535. Удаление как xml
имеет нет эффекта, так что это не так На самом деле t в любом случае переходит к данным XML.
Ваши ответы:
В конце концов, однако, я не могу не думать, что все это все равно будет пустой тратой времени. Возможно, вам удастся найти лучший инструмент SQL CE only, с помощью которого вы сможете редактировать схему и просматривать каждый столбец надлежащим образом. Как-то жаль, что до этого дошло, но я не вижу более легкого варианта.
Это может быть не идеально, но можно ли разбить его при просмотре в текстовом режиме?
Например:
SELECT
SUBSTRING(my_text, 1, 8000),
SUBSTRING(my_text, 8001, 8000)
FROM
dbo.My_Table
Он работает как есть в SQL 2008. Для 2005 вы может потребоваться выполнить CAST для VARCHAR (MAX), и я не уверен, будет ли это работать должным образом или нет.
Я только что придумал следующий запрос в 2008 году (я не есть версия CE под рукой), и она хорошо работала для практически неизвестной длины текста (ограничение в 800000 символов, я думаю, что вы, вероятно, не захотите просто отображать). Фрагменты выводятся как отдельные строки, поэтому в середине текста может быть возврат каретки. Не знаю, проблема в этом или нет.
;WITH my_cte AS
(
SELECT
SUBSTRING(my_text, 1, 8000) AS sub,
SUBSTRING(my_text, 8001, LEN(CAST(my_text AS VARCHAR(MAX)))) AS remainder
FROM
dbo.Test_Text
UNION ALL
SELECT
SUBSTRING(remainder, 1, 8000),
SUBSTRING(remainder, 8001, LEN(remainder))
FROM
my_cte
WHERE
LEN(remainder) > 0
)
SELECT
*
FROM
my_cte