Создать пользовательский тип данных в SQL Server 2008, который основан на INT IDENTITY (#, #) - PullRequest
0 голосов
/ 10 октября 2011

Кто-нибудь знает, возможно ли создать UDDT, который выглядит примерно так:

CREATE TYPE dbo.TID FROM int NOT NULL IDENTITY(1,1)

Все до IDENTITY (1,1) является законным и генерирует новый UDDT.Однако мне нужно автоматически установить IDENTITY во время определения UDDT и использования во время определения таблицы.Иногда, если мы решим перейти с INT IDENTITY (#, #) на UNIQUEIDENTIFIER, я бы хотел изменить его только в одном месте.Мне не очень интересно просматривать таблицы и переходить с одного типа на другой, особенно потому, что будет много таблиц.

С уважением,

Huske

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Нет. Свойство IDENTITY также прикреплено к таблице, а не только к столбцу

Возможно, вам не интересно, но так работает SQL

  • Не для всех таблиц требуется суррогатный ключ
  • Для некоторых таблиц требуется tinyint, smallint или bigint
  • Если вам нужен UNIQUEIDENTIFIER, используйте его сейчас (и нажмите хит кластеризованного индекса)
  • У вас есть реальная потребность прямо сейчас ?
1 голос
/ 10 октября 2011

Это невозможно. Взгляните на CREATE TYPE . Идентичность не является частью типа данных. Это часть определения столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...