Где находятся файлы Базы Данных SQL ?
Как правильно настроить Genymotion и где потом искать файлы базы данных?
Здравствуйте. В проекте нужно создать базу данных. Как правильно настроить Genymotion и где.
Где находятся .pas файлы?
Простой вопрос, где находиться .pas файлы? К примеру Windows.pas,Variants.pas и т.д
Где находятся конфигурационые файлы Dock?
привет 1.подскажите где находяться конфигурационые файлы Dock на mac os. конкретней меня.
Где находятся файлы компонентов Delphi xe2
Возможно, глупый вопрос, но все же: где находятся файлы компонентов в Delphi XE2. У меня возник.
Удобнее было бы забэкапить базу, нежели отправлять почтой сами файлы БД.
Но если так хочется отправить файлы, можно посмотреть результат выполнения запроса sp_HelpDB имябазы,
во втором датасете он перечислит все файлы базы. Ну или на базе правая кнопка мыши — свойства.
По умолчанию обычно базы кладутся в туда, куда им сказали быть при установке SQL сервера.
Обычно это директория Data по соседству с директорией самого сервера.
Например, C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
Но это мой частный случай.
И по умолчанию нельзя надеяться, что все файлы базы окажутся там, где они по умолчанию и даже что все файлы базы будут расположены на одном диске.
Как найти каталог данных для экземпляра SQL Server?
У нас есть несколько огромный базы данных (20 ГБ+), которые в основном содержат статические данные поиска. Поскольку наше приложение выполняет соединения с таблицами в этих базах данных, они должны быть частью каждого локального SQL-сервера разработчиков (т. е. они не могут быть размещены на центральном общем сервере баз данных).
мы планируем скопировать канонический набор фактических файлов базы данных SQL Server (*.MDF и.* ЛДФ) и прикрепить их к локальной базе данных каждого разработчика.
Что лучший способ узнать каталог данных локального экземпляра SQL Server, чтобы мы могли скопировать файлы в нужное место? Это будет сделано с помощью автоматизированного процесса, поэтому я должен быть в состоянии найти и использовать его из сценария сборки.
15 ответов:
это зависит от того, путь по умолчанию для файлов данных и журналов, или нет.
если путь задан явно в Properties => Database Settings => Database default locations затем SQL server сохраняет его в Software\Microsoft\MSSQLServer\MSSQLServer на DefaultData и DefaultLog значения.
однако, если эти параметры не заданы явно, SQL server использует пути данных и журналов базы данных master.
Ниже приведен сценарий, который охватывает оба случая. Это упрощенная версия запроса, который SQL Management Studio работает.
кроме того, обратите внимание, что я использую xp_instance_regread вместо xp_regread , так что этот скрипт будет работать для любого экземпляра, по умолчанию или именованным.
вы можете достичь того же результата с помощью SMO. Ниже приведен пример C#, но вы можете использовать любой другой язык .NET или PowerShell.
это намного проще в SQL Server 2012 и выше, предполагая, что у вас есть пути по умолчанию (что, вероятно, всегда правильно):
я наткнулся на это решение в документации для Инструкции Create Database в справке для SQL Server:
хотя это очень старый поток, я чувствую, что мне нужно внести свой вклад в простое решение. Каждый раз, когда вы знаете, где в Management Studio находится параметр, к которому вы хотите получить доступ для любого автоматизированного сценария, самый простой способ-запустить быструю трассировку профилировщика в Автономной тестовой системе и захватить то, что Management Studio делает на бэкэнде.
в этом случае, предполагая, что вы заинтересованы в поиске расположения данных и журналов по умолчанию, вы можете сделать следующее:
выберите
SERVERPROPERTY (‘instancedefaultdatapath’) как [DefaultFile],
SERVERPROPERTY (‘instancedefaultlogpath’) как [DefaultLog]
для текущей базы данных вы можете просто использовать:
select physical_name from sys.database_files;
чтобы указать другую базу данных, например «модель», используйте sys.master_files
select physical_name from sys.master_files where database_id = DB_ID(N’Model’);
начиная с Sql Server 2012, Вы можете использовать следующий запрос:
(Это было взято из комментария в http://technet.microsoft.com/en-us/library/ms174396.aspx, и проверено.)
различные компоненты SQL Server (данные, журналы, SSAS, SSIS и т. д.) имеют каталог по умолчанию. Настройки для этого можно найти в реестре. Подробнее читайте здесь:
http://technet.microsoft.com/en-us/library/ms143547%28SQL.90%29.aspx
так что если вы создали базу данных, используя только CREATE DATABASE MyDatabaseName он будет создан по пути, указанному в одной из настроек выше.
теперь, если администратор / установщик изменил путь по умолчанию, то по умолчанию путь к экземпляру хранится в реестре за
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[INSTANCENAME]\Setup
если вы знаете имя экземпляра, то вы можете запросить реестр. Этот пример специфичен для SQL 2008-дайте мне знать, если вам также нужен путь SQL2005.
каждая база данных может быть создана переопределяя настройки сервера в его собственном месте, когда вы выдаете CREATE DATABASE DBName заявление с соответствующими параметрами. Вы можете узнать это, выполнив процедуру sp_helpdb
все просто:
это вернет все базы данных с соответствующими файлами
из графического интерфейса: откройте свойства сервера, перейдите к Параметры Базы Данных и видим расположение базы данных по умолчанию.
обратите внимание, что вы можете удалить файлы базы данных, где вам нравится, хотя это кажется чище, чтобы держать их в каталоге по умолчанию.
вы можете найти расположение данных и журналов по умолчанию для текущего экземпляра SQL Server, используя следующий T-SQL:
маленький придурок: нет папки данных, только по умолчанию папку data.
в любом случае, чтобы найти его, если вы хотите установить для первого экземпляра по умолчанию:
раздел HKEY_LOCAL_MACHINE\программное обеспечение\Майкрософт\SQL-сервера Microsoft\MSSQL данных.1\Setup\SQLDataRoot
Если есть именованный экземпляр, MSSQL.1 становится чем-то вроде MSSQL10.Имя экземпляра.
расширяя ответ» разбрызганные биты», вот полный скрипт, который это делает:
5) Место нахождения файлов базы данных ms sql server. Системные базы данных. Подключение к базе данных, указывая путь файла базы данных.
Место нахождения файлов базы данных MS SQL server задается при ее создании.
Системная база данных
master
В этой базе данных хранятся все данные системного уровня для экземпляра SQL Server.
tempdb
Рабочее пространство для временных объектов или взаимодействия результирующих наборов.
msdb
Используется агентом SQL Server для планирования предупреждений и задач.
model
Используется в качестве шаблона для всех баз данных, создаваемых в экземпляре SQL Server. Изменение размера, параметров сортировки, модели восстановления и других параметров базы данных model приводит к изменению соответствующих параметров всех баз данных, создаваемых после изменения.
resource
Системные объекты физически хранятся в базе данных resource, но логически отображаются в схеме sys любой базы данных.
Строка подключения strConn определяет место нахождения базы данных и параметры подключения к этой базе данных. Для определения строки подключения в окне Обозреватель серверов выделите базу данных и откройте окно свойств. В окне свойств скопируйте значение параметра Строка подключения и вставляйте эту строку в код обработчика Form1_Load.
private void Form1_Load(object sender, EventArgs e)
string strConn = «Data Source=(local)\\SQLEXPRESS; » +
«Integrated Security=True; Pooling=False»;
string strCmd = «SELECT Name, Post, Oklad, BirthDay FROM Person»;
SqlDataAdapter adapPerson = new SqlDataAdapter(strCmd, strConn);
DataTable Person = new DataTable();
adapPerson.Fill(Person);
6) Команда select языка sql. Определение вычисляемых полей. Операнд where команды select. Формирование условий отбора записей с помощью операций сравнения.
Команда SELECT языка SQL.
Команда SELECT предназначена для отбора нужных записей.
Команда SELECT имеет следующий упрощенный формат:
FROM <Список таблиц>
WHERE <Условия отбора записей>
В этой команде обязательно должен быть указан только список полей и операнд FROM, а остальные операнды могут отсутствовать. В списке операнда FROM перечисляются имена таблиц, из которых отбираются записи. Этот список должен содержать как минимум одну таблицу. Например, для отбора всех записей таблицы следует выполнить SQL-запрос:
SELECT Name, Oklad, Post FROM Person
Определение вычисляемых полей.
Кроме физических полей таблиц, в SELECT-запрос можно включать вычисляемые поля. Для получения вычисляемого поля в списке полей указывается не имя этого поля, а выражение, по которому рассчитывается его значение. Например,
SELECT Name, Post, Oklad, Oklad*1.5 AS Зарплата
Здесь через ключевое слово AS вводится имя вычисляемого поля. Ввод имени поля не обязателен, но использование имени поля позволяет представлять информацию более наглядно.
Операнд WHERE команды SELECT. Формирование условий отбора записей с помощью операций сравнения.
На практике требуется отобрать записей, которые удовлетворяют каким-либо условиям отбора записей. Это условие отбора записей задается с помощью операнда WHERE.
Критерий отбора записей представляет собой логическое выражение, в котором можно использовать следующих операторов сравнения.
= — равно; <= — меньше или равно;
> — больше; <> — или != — не равно;
< — меньше; !> — не больше;
>= — больше или равно; !< — не меньше.
В качестве примера можно привести следующий SQL-запрос.
SELECT Name, Oklad FROM Person
WHERE Oklad > 20000;
Эта команда определяет получение списка сотрудников, имеющих оклад более 20000 рублей.
private void sql_load2_Click(object sender, EventArgs e)
/*string str = «SELECT Id, Name, Age, Position, Experience, Salary FROM Person Where Salary between 37000 and 50000»;
Как найти каталог данных для экземпляра SQL Server?
У нас есть несколько огромный базы данных (20 ГБ +), которые в основном содержат данные статического поиска. Поскольку наше приложение выполняет объединения с таблицами в этих базах данных, они должны быть частью локального SQL-сервера каждого разработчика (т. Е. Они не могут размещаться на центральном общем сервере базы данных).
Мы планируем скопировать канонический набор фактических файлов базы данных SQL Server (* .mdf и * .ldf) и прикрепить их к локальной базе данных каждого разработчика.
Как лучше всего узнать каталог данных локального экземпляра SQL Server, чтобы мы могли скопировать файлы в нужное место? Это будет сделано с помощью автоматизированного процесса, поэтому мне нужно найти и использовать его из сценария сборки.
15 ответы
Это зависит от того, установлен ли путь по умолчанию для файлов данных и журналов или нет.
Если путь задан явно в Properties => Database Settings => Database default locations тогда SQL-сервер хранит его в Software\Microsoft\MSSQLServer\MSSQLServer in DefaultData и DefaultLog значения.
Однако, если эти параметры не заданы явно, SQL-сервер использует пути данных и журналов главной базы данных.
Ниже приведен сценарий, охватывающий оба случая. Это упрощенная версия запроса, который выполняет SQL Management Studio.
Также обратите внимание, что я использую xp_instance_regread вместо xp_regread , поэтому этот сценарий будет работать для любого экземпляра, по умолчанию или с именем.
Вы можете добиться того же результата, используя SMO. Bellow — это образец C #, но вы можете использовать любой другой язык .NET или PowerShell.
Это намного проще в SQL Server 2012 и более поздних версиях, если у вас установлены пути по умолчанию (что, вероятно, всегда правильно):
ответ дан 13 апр.
Разве для этого не требуется установка другого пакета — SMO SDK? — БСалита
@BSalita — если у вас установлен SQL-сервер, значит, у вас уже установлен SMO. Вам просто нужно ссылаться на сборки из C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies , например Microsoft.SqlServer.Smo.dll и Microsoft.SqlServer.ConnectionInfo.dll . Однако, если вы подключаетесь с машины, на которой не установлен SQL-сервер, вам потребуется установить SMO. Найдите «Microsoft SQL Server 2012 Feature Pack», чтобы найти автономный установщик SMO. — Алекс Аза
Спасибо за включение примера C # — это было невероятно полезно. — ТрейлДжон
Это работает, но в результатах появляется сообщение об ошибке. RegQueryValueEx() returned error 2, ‘The system cannot find the file specified.’ Msg 22001, Level 1, State 1 RegQueryValueEx() returned error 2, ‘The system cannot find the file specified.’ Msg 22001, Level 1, State 1 — DKroot
Попытка определить это для SQL 2005, где последнее решение не работает. Однако после поиска во ВСЕМ реестре любого ключевого слова, как вы упомянули, например Database default locations , Нигде не могу найти — ни для SQL2005, ни для SQL2008, ни для SQL2012. Я обыскал весь HKEY_LOCAL_MACHINE для этого ключевого слова, а также сами фактические пути. Ни в помине ни для одной версии. И пытаясь через TSQL, я получаю ту же ошибку, что и @DKroot. Думаю, мне придется схитрить и использовать каталоги основных файлов базы данных. — Джерри Додж
Несмотря на то, что это очень старый поток, я чувствую, что мне нужно внести простое решение. Каждый раз, когда вы знаете, где в Management Studio находится параметр, к которому вы хотите получить доступ для любого вида автоматизированного сценария, самый простой способ — запустить быструю трассировку профилировщика в автономной тестовой системе и зафиксировать, что Management Studio делает на бэкэнде. .
В этом случае, предполагая, что вы заинтересованы в поиске местоположений данных и журналов по умолчанию, вы можете сделать следующее:
ВЫБОР
СВОЙСТВО СЕРВЕРА (‘instancedefaultdatapath’) AS [DefaultFile],
СВОЙСТВО СЕРВЕРА (‘instancedefaultlogpath’) AS [DefaultLog]
ответ дан 22 мая ’13, 00:05

Я наткнулся на это решение в документации для оператора Create Database в справке по SQL Server:
ответ дан 10 дек ’09, 18:12
Ничего себе, на удивление так много голосов за неправильный ответ. Этот запрос покажет путь к файлу данных основной базы данных, а не путь к файлам данных по умолчанию. Путь к файлам данных по умолчанию может совпадать или отличаться от пути к файлу master.mdf. Это «решение» не будет работать, если вы храните пользовательские базы данных отдельно от системных баз данных, что не редкость в больших производственных средах. — Алекс Аза
@AlexAza Это намного больше кода, чем я хотел, и это может быть моей собственной проблемой. 🙂 А как насчет этого ответа? — Аарон Дженсен
Быстрый комментарий — уменьшите значение SUBSTRING start_position до 0, чтобы получить полный чистый путь без первого символа имени файла master.mdf. — харизмы
Мы используем это решение, потому что не хотим открывать реестр, чтобы узнать ответ. Но мы создали базу данных в том месте, где мы хотим, чтобы были созданы другие, и мы ищем информацию об этой базе данных вместо «master». SELECT physical_name FROM sys.master_files mf inner JOIN sys.databases d ON d.database_id = mf.database_id AND d.name = ‘our-template-database’ AND TYPE = 0 — лиса
@AlexAza Я согласен, это неаккуратное решение, но для более старых версий SQL Server другие решения, например, реестр, похоже, не работают. Отсюда комментарии к вашему ответу. Чтение из реестра тоже почти похоже на взлом. — Джерри Додж
Для текущей базы данных вы можете просто использовать:
select physical_name from sys.database_files;
чтобы указать другую базу данных, например, «Модель», используйте sys.master_files
select physical_name from sys.master_files where database_id = DB_ID(N’Model’);
+1. Стоит отметить, что это нужно запускать в контексте БД, файлы которой вы хотите. (Некоторое время я безрезультатно искал способ присоединиться к sysdatabases ). — EM0
@ EM0 неправда. Вы можете запросить sys.master_files и присоединиться к sys.databases отовсюду. select * from sys.master_files f join sys.databases d on d.database_id = f.database_id — ПИМ
Начиная с Sql Server 2012, вы можете использовать следующий запрос:
ответ дан 23 окт ’13, 16:10
Различные компоненты SQL Server (данные, журналы, SSAS, SSIS и т. Д.) Имеют каталог по умолчанию. Настройку для этого можно найти в реестре. Подробнее читайте здесь:
Итак, если вы создали базу данных, используя только CREATE DATABASE MyDatabaseName он будет создан по пути, указанному в одной из настроек выше.
Теперь, если администратор / установщик изменил путь по умолчанию, то путь по умолчанию для экземпляра сохраняется в реестре по адресу
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[INSTANCENAME]\Setup
Если вы знаете имя экземпляра, вы можете запросить реестр. Этот пример специфичен для SQL 2008 — дайте мне знать, нужен ли вам также путь SQL2005.
Каждая база данных может быть создана, переопределяя настройку сервера в ее собственном месте, когда вы выдаете CREATE DATABASE DBName заявление с соответствующими параметрами. Вы можете узнать это, выполнив sp_helpdb
ответ дан 11 дек ’09, 13:12

Это не помогает, потому что база данных, которую я бы запрашивал, еще не существует. Есть ли эквивалентная хранимая процедура для экземпляров (в отличие от баз данных)? — Аарон Дженсен
Извините, но это неправильное решение. Этот запрос реестра вернулся null для меня в первую очередь. я изменил xp_regread в xp_instance_regread и исправили путь в реестре Software\Microsoft\MSSQLServer\Setup чтобы запрос работал на каждом экземпляре SQL-сервера, независимо от версии. Однако местоположение, которое возвращает запрос, даже близко не соответствует моему расположению файлов данных или журналов по умолчанию. Кроме того, почему он возвращает только одно значение как для файлов данных, так и для файлов журнала? В моем окружении для них установлены разные значения. Нередко файлы данных и журналов находятся на разных дисках. — Алекс Аза
Чтение из HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[INSTANCENAME]\Setup дает доступ к каталогу экземпляра, но не к фактическим каталогам файлов данных / журнала по умолчанию. Она имеет SQLDataRoot , однако он не включает подкаталог \Data которое и есть реальное местоположение. — Джерри Додж