ROWGUIDCOL - что он реально дает?

Ennor Tiegael

Нет, я понимаю, что столбцы с таким атрибутом используются в обновляемой реплике. Мне другое непонятно - что же, собственно, означает установка этого атрибута?
The ROWGUIDCOL property does not enforce uniqueness of the values stored in the column. ROWGUIDCOL also does not automatically generate values for new rows inserted into the table.
Получается, единственное, что он дает, это возможность обращаться к столбцу по $ROWGUID вместо его имени.Неужели действительно больше ничего?..
8 ответов

Ennor Tiegael

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


Ennor Tiegael

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


Ennor Tiegael

Да вроде бы как нет. А зачем?


Ennor Tiegael

Ну, в Compact Edition, например, он таки генерирует новые значения автоматом, по типу identity.Просто разбирал новый проект, который мне передали, а там у некоторых таблиц PK с таким атрибутом объявлен (при том, что репликой там никто и никогда не заморачивался). Полез смотреть, нет ли чего хитрого, но не нашел - видимо, прежние девелоперы его туда от незнания поставили...


Ennor Tiegael

Просто разбирал новый проект, который мне передали, а там у некоторых таблиц PK с таким атрибутом объявлен (при том, что репликой там никто и никогда не заморачивался). Полез смотреть, нет ли чего хитрого, но не нашел - видимо, прежние девелоперы его туда от незнания поставили...
Почему от незнания... Я, например специально делаю их такими, на случай, если захочется репликацию сделать.На момент разработки это обходится очень "дешево", а добавленные реплакацией столбцы стоить могут довольно "дорого".


Ennor Tiegael

Ну, в Compact Edition, например, он таки генерирует новые значения автоматом, по типу identity.
А может, там все-таки дефолт newid() висит на столбце?


Ennor Tiegael

А может, там все-таки дефолт newid() висит на столбце?
ROWGUIDCOL automatically generates values for new rows inserted into the table.
Собсно, с чего все сомнения и начались - такое поведение как раз вполне логично. Должен же он хоть что-то делать, окромя чистого украшательства скриптов.


Ennor Tiegael

Ennor Tiegael,Такое поведение характерно ТОЛЬКО для Compact Edition. На других серверах необходимо указывать DEFAULT NEWID()