我使用下面的脚本手动插入订单交易。此脚本每次处理一个订单(@orderId - 在此处使用此变量)。我得到了200个订单的清单,有没有办法可以使用单个脚本处理所有订单?
DECLARE @return_value int, @exceptionId bigint, @createDate datetime
EXEC @return_value = [dbo].[uspInsertException]
@exceptionTypeCode = N'CreateCustomerAccount',
@exceptionSource = N'SOPS',
@exceptionCode = N'PUSH2EQ',
@exceptionDescription = N'CreateCustomerAccount exception MANUALLY pushed to EQ',
@request = N'',
@response = N'',
@orderId = 227614128,
@sourceSystem = N'OMS',
@exceptionStatusCode = N'Open',
@actorId = 1,
@exceptionSubTypeCode = NULL,
@exceptionId = @exceptionId OUTPUT,
@createDate = @createDate OUTPUT
SELECT @exceptionId as N'@exceptionId', @createDate as N'@createDate'
SELECT 'Return Value' = @return_value
答案 0 :(得分:0)
绝对可以做到。我发现的最好的方法是在你的应用程序中构建嵌套类,然后将它传递给sql,你可以使用OPENXML或xPath将其粉碎,具体取决于xml的大小。
根据您的需要,您还可以使用Web服务,您可以在其中放置类和代码以连接到数据库。然后,应用程序引用webservice中的类,并将类层次结构格式的数据传递给Web服务,然后Web服务解析数据并将其作为完整的xml块传递给数据库,在存储过程中将其切碎。并插入。如果使用此方法,请确保使c#类可序列化。
您可以使用for xml轻松地从数据库中检索数据作为存储过程的一部分,我建议将其包装在事务中,以便在发生错误时不会插入一半文件。
如果您需要一些代码示例,请提供有关如何将数据传递到数据库的更好说明。
> User.find_by email: email.to_s