我有两个表,例如
队列
QueueID
LogParameters
QueueParameters
QueueParametersID
QueueID
LogParametersKey
LogParametersValue
我必须编写SP才能在两个表中创建一个条目
LogParameterKey和LogParameterValue可能包含多个值,但每个值的QueueID应相同,QueueParameterID可能不同。
**QueueID** **LogParameters**
1 AA
**QueueParametersID** **QueueID** **LogParametersKey** **LogParametersValue**
1 1 FirstName Mohammad
2 1 LastName Salman
3 1 Age 17
如何为LogParameterKey和LogParameterValue传递多个值?..有人建议我为此使用数组......还有其他方法吗?
创建过程AddQueue @LogParameters NVARCHAR(255) @AuditParameters AS AuditParameter READONLY, - UserDefinedTable
AS
SET NOCOUNT ON;
BEGIN
DECLARE @QueueID BIGINT
EXECUTE dbo.procInsertQueue
@LogParameters = @LogParameters,
@QueueID = @QueueID OUTPUT
DECLARE @GetQueueID BIGINT = (SELECT QueuesID FROM Queues WHERE LogParameters= @LogParameters
DECLARE @AuditQueueParametersID BIGINT
DECLARE @TempTable TABLE(
ParameterKey NVARCHAR(255),
ParameterValue NVARCHAR(255),
AuditQueuesID BIGINT)
INSERT INTO @TempTable(ParameterKey,ParameterValue,QueuesID)
SELECT ParameterKey,ParameterValue,@GetQueueID FROM @AuditParameters
DECLARE @LogParameterKey NVARCHAR(255) = (SELECT ParameterKey FROM @TempTable WHERE QueuesID = @GetQueueID)
DECLARE @LogParameterValue NVARCHAR(255) = (SELECT ParameterValue FROM @TempTable WHERE QueuesID = @GetQueueID)
EXECUTE dbo.procAddQueueParameters
@AuditQueueID = @GetQueueID
@LogParametersKey = @LogParametersKey,
@LogParametersValue = @LogParametersValue,
@QueueParametersID = @QueueParametersID OUTPUT
END
END
答案 0 :(得分:0)
<强> 1。使用用户定义的表类型
https://technet.microsoft.com/en-us/library/bb522526(v=sql.105).aspx
<强> 2。生成xml字符串并在SP中解析
3.使用临时表
CREATE TABLE #Input
(
QueueParametersID ..
QueueID ..
LogParametersKey ..
LogParametersValue ..
)
--INSERT VALUES
EXEC dbo.YouSP
IN SP使用表#Input