title: Insert statement with cursor
body: <p>In a table there are like 113 columns. and there are two default records in the table, one is for unknown and another is for inapplicable. So, each column has its own default value to represent unknown and inapplicable. </p>
  
  <p>I dont wanna write regular insert statement to get those two records. </p>
  
  <p>so, I tried to insert each column using a  cursor.</p>
  
  <p>Got the names of columns for that table from information_schema.columns and tried to insert values from exact table in another location using "insert into select" statement, but the name of the columns that we get from information_schema </p>
  
  <pre><code>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
  </code></pre>
  
  <p>But, I did not realize that @col_name would be treated as string, rather than object (column)</p>
  
  <p>Is there any work around for this case or any alternative solution.</p>