Подтвердить что ты не робот

Столбец GUID строки SQL SQL Server

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

Какова цель свойства Row GUID Column в MS SQL Server 2008?

Позвольте мне остановиться на этом. Я видел, что "Не использовать GUID как ПК" повторяется как ответ на этот вопрос, который, кажется, совершенно не связан со мной. Если я устанавливаю Row GUID Column, это заставляет этот столбец GUID быть первичным ключом или что-то еще?

Чтобы перефразировать мой исходный вопрос: если у меня есть столбец GUID в моей таблице, который не играет никакой роли в индексировании, могу ли я выиграть что-либо от установки этого столбца GUID как Row GUID Column?

4b9b3361

Ответ 1

Он позволяет вам использовать переменную $ROWGUID вместо имени столбца. Он использовался в основном для репликации слиянием. Он не заставляет столбец GUID для ПК, вы можете явно объявлять PK явно. Ответ на ваш последний вопрос - нет, если вы не планируете внедрять репликацию слияния.

Ответ 2

ROWGUIDCOLUMN используется, главным образом, в сценариях репликации, где вам необходимо объединить содержимое нескольких таблиц спутниковых баз данных в один центральный БД.

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

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

Ответ 3

Столбец RowGUID используется для репликации. Он позволяет правильному объему механизма репликации. Когда репликация включена, этот столбец будет добавлен в таблицы, которые еще не имеют столбца RowGUID.

Вы не получите ничего, используя его, если вы не планируете внедрять репликацию. Это эквивалентно установке newsequentialid() в качестве значения по умолчанию для столбца.

Ответ 4

Не заставляя это быть основным ключом, свойство просто определяет, будет ли поле автоматически обновляться. ЕСЛИ вы хотите создать GUID в приложении и отправить его, установите для этого свойства значение false, в противном случае установите его значение true и пусть база данных создаст его автоматически. Если поле является кластеризованным индексом, убедитесь, что значение по умолчанию - NEWSEQUENTIALID().

Ответ 5

Нет, это не заставляет его как ПК. Это означает, что вы не можете создать второй уникальный идентификатор и указать это как столбец GUID строки