Подтвердить что ты не робот

Псевдоним таблицы игнорируется для столбцов, указанных в инструкции INSERT в SQL Server

Я видел выше вопрос в одном из блогов. Но не мог найти ответ нигде. Возможно, эксперты SQL Server могут помочь мне в этом.

CREATE TABLE #DEMO (VALUE1 INT, VALUE2 VARCHAR(10))

CREATE TABLE #DEMO1 (VALUE1 INT, VALUE2 VARCHAR(10))

INSERT INTO #DEMO VALUES (1, '10')

INSERT INTO #DEMO1 (a.a.a.value1,b.b.b.value2)
    SELECT
        Value1, Value2
    FROM #DEMO

Если вы видите инструкцию insert, я указал некоторое имя псевдонима во вставленных столбцах. К моему удивлению, SQL Server не выдавал никаких ошибок при выполнении инструкции. В чем причина этого? Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

Список имен столбцов в этом месте - это список имен в таблице # DEMO1, поэтому квалификаторы не имеют никакого значения и, скорее всего, просто игнорируются.

Интересно, почему это не вызывает синтаксическую ошибку, так как если бы вы хотели использовать имена колонок в виде a.a.a.value1, тогда вам нужно было бы поместить имя в [] или "".