Префикс имени таблицы для столбцов в запросе UPDATE - PullRequest
0 голосов
/ 02 апреля 2012

Разрешен ли префикс имени таблицы для полей, которые необходимо обновить в SQL? Как:

UPDATE tablename 
   SET tablename.mycolums = true 
 WHERE ...

Что такое стандарт SQL ?

Ответы [ 3 ]

4 голосов
/ 02 апреля 2012

Приведенный выше запрос прекрасно работает в среде SQL SERVER.

Стандарт SQL для оператора UPDATE имеет следующую форму:

UPDATE table_name SET column_name = value [, column_name = value ...] [WHERE condition]

Но Некоторые базы данных используют нестандартную форму, используя FROM в UPDATE выражении:

UPDATE alias_name 
alias_name.mycolums=true
FROM tablename alias_name  
1 голос
/ 03 апреля 2012

Недопустимо добавлять префикс столбца в разделе SET к псевдониму таблицы в PostgreSQL, указанному в документации :

столбец

Имястолбца в таблице.Имя столбца может быть дополнено именем подполя или индексом массива, если это необходимо.Не включайте имя таблицы в спецификацию целевого столбца - например, недопустимая вкладка UPDATE SET tab.col = 1.

Также упоминается, что это поведение соответствует стандарту SQL.

1 голос
/ 02 апреля 2012

Да, конечно, это разрешено в Sql-Server.Если вы напишите запрос, как показано ниже, он работает нормально.

UPDATE KKDb SET KKDb.StdName = 'Sai' WHERE (KKDb.StdNo = 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...