Является ли CARD ключевым словом в SQL?или: список всех ключевых слов SQL - PullRequest
0 голосов
/ 02 февраля 2019

Я добавляю таблицу в свою базу данных - CREATE TABLE dbo.Card - и SSMS выделяет слово Card.Я ищу в интернете, пытаясь выяснить, что это слово означает для SQL и является ли оно ключевым словом или нет.Я не вижу его нигде в списке Microsoft Зарезервированные слова SQL .

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

Является ли Card зарезервированным словом или ключевым словом в SQL, или по любой другой причине небезопасно использовать в качествеидентификатор?

Если это безопасно, кто-нибудь может объяснить, почему SSMS выделяет его?

Если это не на 100% безопасно для использования в качествеимя таблицы, я, скорее всего, выберу другое имя.

Windows 8.1
SSMS v17.7
Red Gate - Up to date, including SQL Prompt 9.4.9
SQL Server 2017 (14.0)
Database Compatibility Level 2017 (140)

ОБНОВЛЕНИЕ

Похоже, что основной консенсус таков:

  1. Это не зарезервированное или ключевое слово
  2. SSMS выделяет его из-за причин ... Возможно, оно где-то используется MS SQL Server или SSMS

В этомДык, мне просто ужасно любопытно, но, по крайней мере, я знаю, что не нужно беспокоиться.Спасибо всем за ваши ответы.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Карта определенно не является зарезервированным ключевым словом в SQL Server

Вы можете проверить полный список зарезервированных слов Зарезервированные ключевые слова (Transact-SQL)

SSMS выделяет это, потому что причины ... Вероятно, это где-то используется MS SQL Server или SSMS

Это различные ключевые слова, которые были субъективно выбраны Microsoft и помещены в список вфайл окраски синтаксиса редактора запросов.

Я предлагаю всегда использовать Идентификаторы с разделителями ([] или ") при указании имени таблицы и имен столбцов.

ДляНапример, используемый вами скрипт должен быть записан как

CREATE TABLE [dbo].[Card](<Columns>)
0 голосов
/ 02 февраля 2019

Нет, card не является обратным словом в стандарте Microsoft SQLServer или SQL ANSI.

...