我有一個要求,我必須將多行插入到不同的表中。不存在多次插入的存儲過程
首先,我想檢查角色是否存在於一個表中,然後我必須將值插入到role
表中,然後插入到相關表中。
在這裏,我的關注是我必須得到roleid
如果它插入,並與roleid
只有我會插入值。
這一切都應該在一次單擊和單個存儲過程中完成。
等待回覆。
在此先感謝。
我有一個要求,我必須將多行插入到不同的表中。不存在多次插入的存儲過程
首先,我想檢查角色是否存在於一個表中,然後我必須將值插入到role
表中,然後插入到相關表中。
在這裏,我的關注是我必須得到roleid
如果它插入,並與roleid
只有我會插入值。
這一切都應該在一次單擊和單個存儲過程中完成。
等待回覆。
在此先感謝。
像@dasblinkenlight聲明你可以使用合併功能來做插入或更新,所以不需要再覆蓋。
如果我正確理解你的問題,你希望通過單個存儲過程將多行插入到不同的表中(類似於在一次調用中持久保留整個對象圖)。擴展Microsoft提供的示例,您可以使用以下示例代碼。
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<CustomersAndOrders>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
<Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00" />
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
<Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00" />
</Customer>
</CustomersAndOrders>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
INSERT INTO [YOUR_TABLE_NAME] ([Column1], [Column2])
SELECT [CustomerID], [ContactName]
FROM OPENXML (@idoc, '/CustomersAndOrders/Customer',1)
WITH ([CustomerID] varchar(10), [ContactName] varchar(20))
INSERT INTO [YOUR_OTHER_TABLE_NAME] ([Column1], [Column2])
SELECT [EmployeeID], [OrderDate]
FROM OPENXML (@idoc, '/CustomersAndOrders/Customer/Order',1)
WITH ([EmployeeID] varchar(10), [OrderDate] varchar(20))
提供表格結構將有很大幫助。 –
在SQL Server 2008及更高版本中,使用[merge](http://technet.microsoft.com/zh-cn/library/bb510625.aspx)執行「查詢或插入」操作。 – dasblinkenlight