Как цитировать и ссылаться на имена таблиц и полей SQL Server - PullRequest
0 голосов
/ 11 мая 2010

Добрый день!

Несмотря на то, что существуют LINQ2SQL и ADO.NET Entity Framework, были ситуации, когда мне нужно было вернуться к обычному старому DataSet (не набрано) и друзьям.

При написании SQL для SqlCommand:

  • Нужно ли заключать в кавычки имена полей и таблиц с помощью []?
  • Хорошо ли ставить префикс имен таблиц [dbo]

Я использую этот синтаксис:

SqlCommand command = new SqlCommand("SELECT [Field1], [Field2] FROM [dbo].[TableName]", connection);

Может быть, есть лучший способ?

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 11 мая 2010

Нужно ли указывать поле и таблицу? имена с []?

Нет, если у вас нет таблицы с именем [foo bar] (с пробелом) или столбец / таблица (и даже имя базы данных) начинаются с цифры или имеют не алфавитно-цифровые символы.

См. MSDN

Хорошо ли ставить имена таблиц с префиксом [DBO]

Абсолютно да. Это позволяет повторно использовать план просто, потому что ссылки на объекты теперь квалифицированы

1 голос
/ 11 мая 2010

Нет необходимости использовать [] при запросе данных из базы данных.

вы используете [], когда есть пробел с псевдонимом, например

SELECT Field1 as [First Name], Field2 as [Last Name] FROM [dbo].[TableName]

, потому что это дает синтаксическую ошибку

dbo - это имя схемы, к которой присоединена ваша таблица и пользователь

вот более подробный ответ Схема базы данных - это способ логически группировать объекты, такие как таблицы, представления, хранимые процедуры и т. Д. Думайте о схеме как о контейнере объектов.

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

Схемы могут быть созданы и изменены в базе данных, и пользователям может быть предоставлен доступ к схеме. Схема может принадлежать любому пользователю, и владение схемой может быть передано.

Вы также можете прочитать статью полностью на: http://www.quackit.com/sql_server/sql_server_2008/tutorial/sql_server_database_schemas.cfm

0 голосов
/ 11 мая 2010

Вы должны заключать в кавычки поля, только если они представляют зарезервированные ключевые слова или содержат недопустимые символы, такие как «Поле № 1». Символы "" (пробел) и "#" обычно недопустимы, поэтому вам придется использовать кавычки в квадратных скобках.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...