Как говорит marc_s, вы можете сделать это, потому что уникальность не применяется для уникальных идентификаторов даже в одном и том же столбце таблицы без явно объявленного уникального индекса / ограничения (в конце концов, две строки могут по праву иметь один и тот же внешний ключ).
ЕСЛИ это всего лишь временный загрузчик, и в будущем будут разрешены только реальные GUID (НЕ NULL), я думаю, что это хороший обходной путь, чтобы избежать генерации GUID, которые просто необходимо заменены позже, и поэтому нет необходимости хранить отдельный частично инициализированный столбец флага или таблицу временных строк, чтобы вы могли заполнить соответствующие GUID позже.
Однако , с точки зрения дизайна, меня больше беспокоит семантика того, что представляет собой этот специальный зарезервированный GUID, и почему разрешение специального зарезервированного значения - это нормально, а NULL - нет. Как я уже сказал, если это просто временно и в стабильном состоянии, вы не хотите разрешать NULL ИЛИ этот специальный зарезервированный 0, это нормально, но если вы собираетесь продолжать разрешать этот специальный зарезервированный GUID в стационарных операциях, я думаю, что это вызывает вопросы дизайна.
Это должен быть внешний ключ? Если это так, могут использоваться значения NULL (но зарезервированное значение ключа, например 0, которого нет в ссылочной таблице, не может). Если это слабая ассоциация, хранение GUID в этой таблице может быть не лучшим решением.