sql存儲過程插入表
在接收結果的過程或代碼中循環讀取結果數據,再插入即可,又或者你可以在將要返回結果集的存儲過程中直接插入臨時表
Ⅱ sql server如何用存儲過程把多個表的數據添加到一張表中,表欄位都很相近,我用臨時表實現了操作,但是
樓主
可以把需求說清楚點
表名是固定的嗎
要傳什麼變數
然後欄位是哪些
如果表名不變
欄位類似的話
我幫你寫個模型
create
proc
usp_tableall
as
insert
into
表名
--這里表要存在
存儲你處理的數據
否則就用select
*
into
from
tb
的格式
select
col1,col2
from
a
union
all
select
col1,col2
from
b
……
go
exec
usp_tableall
Ⅲ SQL2005 使用存儲過程,往表裡插入數據怎麼寫
create procere insert_activeinfo
as
begin
insert into insert_activeinfo(activeid,activename,activedate,usertypeid) values(..)
end
go
--這樣就可以啊,當然你還可以把要插入的值通過參數傳進來,譬如:
create procere insert_activeinfo(@activeid int,@activename varchar(10),@activedate datetime,@usertypeid int)
as
begin
insert into activeinfo(activeid,activename,activedate,usertypeid) values(@activeid,@activename,@activedate,@usertypeid)
end
go
Ⅳ SQL 編寫存儲過程問題(插入臨時表) 條件: into #table 當時間=a時,插入1,2,3 當時間=b時,插入234
請參閱以下腳本
createproc[存儲過程名稱]
as
begin
if[時間]='a'
begin
insertinto#table([列名])values(1),(2),(3)
end
if[時間]='b'
begin
insertinto#table([列名])values(2),(3),(4)
end
end
請採納! 如有疑問,請及時溝通!
Ⅳ SQL server 能否將存儲過程的結果插入臨時表(列數不固定)
當前的做法是不行的:
1、語法是錯誤的。
-- INSERT INTO EXEC sp,這個語法肯定遇到報錯了。
-- 要想作類似操作,至少也要將sp定義成「表值函數」才能將返回的結果值作直接調用
2、PIVOT出來的結果列,未必與預建的表,欄位上匹配。
方案:
》在動態語句中,插入臨時表。如果是sp中插入,則應為永久臨時表 -- 否則調用者訪問時已經被自動清除了。
Ⅵ SQL 將存儲過程的數據插入臨時表的語法
insert
*
#temp
select
A,B
from
(exec
存儲過程XXXXX)
#temp
就是你要的臨時表
直接讀取幾個列是不實際的,除非你修改存儲過程
Ⅶ sql存儲過程給兩表插入數據的問題
給存儲過程中加一些返回值或者把每一步結果插入到一個表中,然後在C#中執行一次看看記錄
一步步調試
Ⅷ 怎麼把下面的的sql語句查詢出來的結果插入到一張新表中去 求大神幫忙
@SQL這個是你生成的sql語句,你在你的sql中增加一個into table,這樣能不能滿足你的需求呢?
關於select into語句我就不多說了,給你參考鏈接,你看看是不是你要的
http://www.w3school.com.cn/sql/sql_select_into.asp
還有就是,你也可以將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
as
declare @sql nvarchar(100) = ''
declare @s int = 1
while(@s < 5)
begin
select @sql += 'select ' + cast(@s as varchar(20)) + ' union all '
set @s += 1
end
select @sql += 'select 999'
exec(@sql)
go
--存儲過程添加數據
insert into test
exec protest
Ⅸ sql server 如何利用 存儲過程 建立一個新表,並向其中插入來自查詢的數據
直接insert into ... select ... 就行了。
例如,從A、B查詢結果,插入到C表:
insert into C(C1,C2)
select A.C1, B.C2 from A inner join B
on A.ID = B.ID
Ⅹ SQL存儲過程中如何插入使用臨時表
在存儲過程中 是不可以創建臨時表的...
建議使用表變數代替臨時表進行操作 或者在存儲過程外面建好臨時表
祝你好運