Landers52 Ответов: 1

Как мне прикрепить базу данных SQL (или избежать этого, если она уже присутствует)


Я работаю над развертыванием своего программного обеспечения с помощью расширенного установщика и хочу прикрепить файл .mdf, расположенный в папке [APPDIR] (папка назначения клиентского ПК). Я наткнулся на эту строку соединения:

<prelang="vb">Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;

Это будет прикрепляться без проблем, когда мое приложение запускается, но после его завершения он будет выскакивать ошибка "database mydbfile уже существует, выберите другое имя" каждый раз, когда приложение открывается. В описании говорится: "если именованная база данных уже была присоединена, SQL Server не присоединяет ее снова. Он использует подключенную базу данных в качестве значения по умолчанию для подключения." Но этого не происходит, так как он пытается прикрепить его каждый раз.

Что я уже пробовал:

Он работает только в первый раз, после этого он попытается подключить его снова (он не обнаружит, что он уже там) и потерпит неудачу, давая мне ошибку, и соединение не будет работать.

1 Ответов

Рейтинг:
0

Gerry Schmitz

Цитата:
AttachDBFilename является уникальным для SQL Express, он запускает пользовательский экземпляр SQL Express, прикрепленный к определенному имени файла БД для однопользовательского режима. База данных-это просто название используемой базы данных, оно не имеет дополнительной коннотации. Для любого рабочего сервера вы, скорее всего, не будете использовать AttachDBFilename. Он строго полезен для разработки и экспериментов в однопользовательском режиме.


Поэтому используйте другую строку подключения, если она уже "подключена".

Параметр AttachDBFileName в строке подключения[^]