В таблице около 113 столбцов. и в таблице есть две записи по умолчанию, одна для неизвестных, а другая для неприменимых. Таким образом, каждый столбец имеет свое собственное значение по умолчанию для представления неизвестного и неприменимого.
Я не хочу писать регулярные операторы вставки, чтобы получить эти две записи.
Итак, я попытался вставить каждый столбец с помощью курсора.
Получил имена столбцов для этой таблицы из information_schema.columns и попытался вставить значения из точной таблицы в другое место, используя инструкцию "insert into select", но имя столбцов, которые мы получили из information_schema
Declare @col_name varchar(50)
declare my_cur CURSOR for
select column_name from information_schema.columns
where table_name = 'tabl' and table_catalog = 'db'
and table_schema = 'dbo'
Fetch next from my_cur
into @col_name
while @@FETCH_STATUS = 0
BEGIN
Insert into db.dbo.tabl (***@col_name***)
select ***@col_name*** from openrowset('sqlncli', 'server=my_server; trusted_connection=yes;', db.dbo.tabl)
fetch next from my_cur into @col_name
end
close my_cur
deallocate my_cur
go
Но я не понимал, что @col_name будет рассматриваться как строка, а не как объект (столбец)
Есть ли способ обойти это дело или какое-нибудь альтернативное решение?