verma.vivek Ответов: 2

Как вставить имя столбца только одной таблицы в другую таблицу в SQL


how to insert only one table's all column name into another table's only one column in sql


Что я уже пробовал:

Я НЕ ЗНАЮ

sql-вставка имени столбца в таблицу-переполнение стека[^]

Tomas Takac

Вы пробовали то, что было рекомендовано в вопросе SO? Каков ваш вопрос? Каков же результат? Вы получаете ошибку?

Выберите COLUMN_NAME из INFORMATION_SCHEMA. COLUMNS, где TABLE_NAME= 'YourTableName'

2 Ответов

Рейтинг:
0

OriginalGriff

Попробуй:

INSERT INTO dbo.DestinationTable (ColumnName)
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns
WHERE TABLE_NAME = 'SourceTable'


Рейтинг:
0

Wendelius

Если я правильно понял вопрос, вы хотите, чтобы список был помещен в один столбец в одной строке. Если это так, подумайте о следующем:

WITH ColumnnList (List) AS (
   SELECT ';' + c.Column_Name
   FROM INFORMATION_SCHEMA.Columns c
   WHERE c.Table_Name = 'SOURCETABLENAME'
   FOR XML PATH ('')
) 
INSERT INTO TARGETTABLENAME (TARGETCOLUMNNAME)
SELECT SUBSTRING(a.List, 2, 99999)
FROM ColumnnList a

Просто не забудь переодеться:

  • SOURCETABLENAME - имя таблицы, для которой нужно перечислить столбцы
  • TARGETTABLENAME - имя таблицы, в которую вы хотите вставить данные
  • TARGETCOLUMNNAME имя целевого столбца в целевой таблице
  • при желании измените разделитель на то, что вы хотите. Я использовал точку с запятой (;)