Версия продукта в SQL Server - PullRequest
0 голосов
/ 29 октября 2009

Простая ситуация. Я создал приложение, которое использует SQL Server в качестве базы данных. Я мог бы добавить в эту базу данных таблицу, содержащую номер версии моего приложения, чтобы мое приложение могло проверить, говорит ли оно с правильной версией базы данных. Но поскольку нет других настроек, которые я храню в базе данных, это будет означать, что я бы добавил одну таблицу с одним полем, содержащую только одну запись.

Какая трата хорошего ресурса ...

Есть ли еще один ват, который я могу сообщить базе данных SQL Server о версии продукта, с которой он связан?

Меня интересует не версия самого SQL Server, а используемая база данных.

(Кстати, это относится как к SQL Server 2000, так и к 2005 г.)

Ответы [ 5 ]

4 голосов
/ 29 октября 2009

Если вы используете SQL 2005 и выше, вы можете сохранить информацию о версии как расширенное свойство самой базы данных и запросить представление sys.extended_properties, чтобы получить информацию, например:

sys.sp_addextendedproperty @name=N'CurrentDBVersion', @value=N'1.4.2'

SELECT Value FROM sys.extended_properties WHERE name = 'CurrentDBVersion' AND class_desc = 'DATABASE'

Если SQL 2000, я думаю, что единственным вариантом является ваша собственная таблица с одной строкой. Накладные расходы почти отсутствуют.

1 голос
/ 29 октября 2009

Я бы пошел с массивным верхним полем поля varchar (5) с крошечным PK. Это имеет смысл, если вы говорите о продукте, который уже использует базу данных SQL Server.

Вы беспокоитесь о накладных расходах в такой маленькой части системы, что она становится незначительной.

0 голосов
/ 29 октября 2009

Я настоятельно рекомендую записать версию базы данных в базу данных. В приложении, которое мы поддерживали более десяти лет, мы обновляли схему базы данных каждый выпуск. Когда пользователь запускал приложение после установки обновления, он мог определить, устарела ли база данных, и преобразовать ее в более новую схему. На самом деле мы сделали добавочное обновление: чтобы получить от 7 до 10, мы сделали 7 -> 8, 8-> 9, 9-> 10. Также представьте себе сценарий, когда кто-то восстанавливает базу данных в более старое состояние из резервной копии.

Даже не думайте о добавлении одной таблицы, просто сделайте это (и подумайте о вариантах использования).

0 голосов
/ 29 октября 2009

Даже если бы в SQL Server была такая функция, я бы ее не использовал. Почему?

  • Добавление новой таблицы для хранения информации незначительно как для размера, так и для скорости работы приложения и базы данных
  • Новая таблица может хранить другие данные конфигурации, связанные с приложением, и у вас уже есть механизм для этого (и если ваше приложение настолько велико, у вас будут другие данные конфигурации)
  • Соединение приложения с конкретным механизмом базы данных (особенно таким образом) очень редко бывает полезно
  • Не стандартная практика и неочевидный для новичка, впервые смотрящего на систему
0 голосов
/ 29 октября 2009

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

...