我有一個存儲過程與輸出一行的SELECT
語句。它是這樣的:哪裏是選擇查詢值臨時存儲,以及如何分別獲取每個值
CREATE PROCEDURE [dbo].[CreateCustomer]
...
INSERT INTO Customers values(, , , ,)
SELECT CustomerID, FirstName, LastNam.....
INSERT Roles values(, , , .....
這將選擇新存儲的值從Customers
表背。第二個插入使用新的CustomerID
將新行插入Roles
表。
有沒有辦法從上述select語句中獲取customerID
而不再查詢CustomerID?
我試圖聲明一個變量,像這樣做:
SELECT takenCustomerID = CustomerID, FirstName, LastNam....(rest of query statement)
但我要聲明的所有變量和這樣來做:
SELECT takenCustomerID, takenFirstName, takenLastNa... = CustomerID, FirstName, LastNam... (rest of query statement)
但是,我認爲這是不好的,因爲它會浪費服務器端的大量內存。
那麼,是否有一種簡單的方法可以在不聲明select語句中的所有變量的情況下立即獲取各個值,例如可以調用TEMP(「customerID」)的內置類TEMP變量並獲取該值?
另外,在存儲過程中是否可以有多個SELECT語句?我們如何從我們想要的select語句中獲取選擇值?
我更多的是出於好奇,因爲我已經知道一種獲得價值的方法。我只想知道是否有更優雅的方式。
你*必須*做一個單獨的'SELECT'(即你以後再次使用SP值嗎?)?如果沒有,您可以改爲執行'INSERT INTO Roles SELECT ... FROM ...'。 – 2012-07-30 06:30:05
那它是什麼,SQL Server或MySql?根據您的DBMS,答案將完全不同。 – ErikE 2012-07-30 06:30:20
@Ic:我想要我插入的所有值返回並使用從選擇查詢中獲得的GUID將角色插入到角色表中 – 2012-07-30 06:35:03