2015-05-18 3 views
2

Say мой код выглядит следующим образом:SQL Server: функция логического имени базы данных?

create database name1 on (name = N'name2', filename = N'C:\SQL\name3') 

name3 Я понимаю.

Теперь «имя2» должно быть «логическим именем». Из того, что я могу найти, это означает, что это соответствующее имя для ссылки на эту базу данных в базе данных. Однако USE name2, возвращает ошибку. Напротив, USE name1 работает просто отлично.

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

Мой вопрос: Какова цель name2? Когда мне когда-нибудь понадобится использовать его над именем 1? Почему это обязательный компонент для file_spec?

Спасибо. (SQL Server 2008 R2)

+0

@GordonLinoff Что это за цель? Просьба привести пример, где он будет использоваться. –

+2

. , Он используется 'ALTER DATABASE', если вы хотите удалить файл или изменить его свойства. –

+0

@GordonLinoff ОК спасибо –

ответ

0

База данных может находиться в нескольких файлах, например:

CREATE DATABASE DatabaseName 
ON (NAME='LogicalName1', FILENAME='C:\SQL\PhysicalName1.mdf'), 
    (NAME='LogicalName2', FILENAME='C:\SQL\PhysicalName2.mdf') 

GO 
USE DatabaseName 
SELECT * FROM sys.database_files 

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

Если вы используете несколько файлов данных (в одной и той же файловой группе), они оба заполняются пропорционально, и это полезно для производительности, если они хранятся на отдельных дисках.

Если вы используете несколько файлов данных в отдельных файловых группах, вы можете указать расположение каждой таблицы (и индекса), чтобы вы могли размещать таблицу, к которой обращаются чаще, на отдельной высокопроизводительной (и высокой -cost).

Для получения более подробной информации см. https://technet.microsoft.com/en-us/library/ms187087.aspx.

Как уже сказал Гордон, логическое имя файла используется в инструкции ALTER DATABASE, когда вам нужно обратиться к определенному файлу. Используя эту команду, вы можете изменить размер файла, параметры автоматического роста или поместить определенный файл в автономный режим. Кроме того, вы можете переместить файл в другое физическое местоположение. См. https://msdn.microsoft.com/en-us/library/bb522469.aspx

Смежные вопросы