Псевдоним таблицы игнорируется для столбцов, указанных в инструкции 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 не выдавал никаких ошибок при выполнении инструкции. В чем причина этого? Может ли кто-нибудь помочь?
Ответы
Ответ 1
Список имен столбцов в этом месте - это список имен в таблице # DEMO1, поэтому квалификаторы не имеют никакого значения и, скорее всего, просто игнорируются.
Интересно, почему это не вызывает синтаксическую ошибку, так как если бы вы хотели использовать имена колонок в виде a.a.a.value1, тогда вам нужно было бы поместить имя в [] или "".