2013-04-11 27 views
0

我需要將一個數據插入到另一個表中。在此步驟之後,我需要從該表中獲取插入的數據......這整個過程中我必須使用單個存儲過程。 。使用sql中的交易的概念...請幫我在這...使用存儲過程的sql server中的trasaction概念

我已經搜索了很多關於這個谷歌和其他網站...但我沒有得到任何有用的東西。 。請幫我在這..

像我有一個表abc具有內容

id name 
1 ashu 

它現在我已經插入新的數據

id name 
2 ashish 

我do't知道我所插入的數據...即時通過存儲過程,這樣做......現在我需要它插入這些數據這個...

+0

問題標題說sql服務器,但你用plsql標記了這個,你在用什麼數據庫? – Taryn 2013-04-11 11:50:10

+0

你可以顯示你寫的存儲過程嗎? – 2013-04-11 11:51:27

+0

我的存儲過程一次插入多條記錄......並且我只希望從那張表中得到所有這些記錄......因爲我必須這樣做......對於單個記錄提取我可以使用@@ identity屬性...但對於多個記錄該怎麼辦...幫助我出來的傢伙...請 – 2013-04-11 12:40:29

回答

0

您可以使用@@IDENTITYSCOPE_IDENTITY()SQL SERVER返回最後插入的標識,所以在這個存儲過程的最後做這樣的事情:

SELECT * FROM YOUR_TABLE WHERE ID = @@IDENTITY 

這將返回插入的最後一行。

MSDN for information on @@IDENTITY AND SCOPE_IDENTITY()

+0

@tanner .....你的回答在我只插入一行的情況下是正確的,這將通過@@ identity屬性獲取......如果我的存儲過程一次插入多條記錄。 。並且我希望所有那些記錄只能從該表中得到......因爲我必須這樣做...... – 2013-04-11 12:39:21

+0

對於多個插入,您可以創建一個逗號分隔的字符串來連接所有身份,因爲它們被插入「1, 2,3,4「,然後在WHERE子句中使用'IN'子句,以便將其作爲WHERE ID IN(1,2,3,4)。 – Tanner 2013-04-11 12:59:09

+0

@tannan ....但是我在那裏插入我已經有uniqueids..so我不能硬編碼...我不知道哪個id會爲插入的記錄生成..without知道id我想要那些50或100行.. – 2013-04-11 13:17:40

0

我得到了這個解決方案。我正在使用:

Output inserted.SNO into @temp 

在此命令中,所有插入的行都將出現在此臨時表中。所以我可以繼續下一步。