1樓:發生等將發生
@sql這個是你生成的sql語句,你在你的sql中增加一個into table,這樣能不能滿足你的需求呢?
關於select into語句我就不多說了,給你參考連結,你看看是不是你要的
還有就是,你也可以將insert 加到你的@sql語句的前面直接執行,是不是也行呢?
比如:現有的@sql = 'select name from table union all select ''zhangsna'' '
你修改成@sql2 = 'insert into table2(name) ' + @sql,這樣是不是也行?
我們既然寫儲存過程了,而且目的也只是唯一的,那麼我們就可以考慮直接將所有步驟放在儲存過程中來處理,沒必要再拿出來單獨考慮怎麼用
--表create table test
name varchar(50)
go--動態sql新增資料
insert into test
exec('select 1')
go--儲存過程
create proc protest
asdeclare @sql nvarchar(100) = ''
declare @s int = 1
while(@s < 5)
begin
select @sql += 'select ' + cast(@s as varchar(20)) + ' union all '
set @s += 1
endselect @sql += 'select 999'
exec(@sql)
go--儲存過程新增資料
insert into test
exec protest
2樓:匿名使用者
在select之前加上create table table名
create table table名 select 。。。。就可以了
sql語句中如何從一張表中查詢資料插入到另一張表中?
3樓:匿名使用者
如果兩表欄位相同,則可以直接這樣用。
insert into table_a select * from table_b
如果兩表欄位不同,a表需要b中的某幾個欄位即可,則可以如下使用:
insert into table_a(field_a1,field_a2,field_a3) select field_b1,field_b2,field_b3 from table_b
還可以加上where條件
SQL把查詢出的列轉換成行,SQL把查詢出的一個列轉換成行
看這裡,比較詳細 sql 如何把一列的值轉換成一行顯示 1 最原始的方法,利用 select.unionselect 欄位1 from 表名 where 條件 union select 欄位2 from 表名 where 條件 select 欄位3 from 表名 where 條件 2 利用 sys...
Sql語句的TOP用法,sql查詢語句 top n的用法
select top 1 from table select top 1 2 from table 取前3行資料 區別就是 裡面可以是個表示式 沒有區別個人的習慣 在sqlserver2000中top後只可以跟常數,在2005後可以跟變數了 也許唯一的區別就是top expression 括號中可以...
求這種查詢的具體sql語句
第一種解決方案 select from select spid,hw from t 1 src pivot count hw for hw in hwi00000001 hwi00000002 piv 第二種解決方案 select spid,sum hwi00000001 as hwi0000000...