Arrays 如何在sql server 2012中初始化变量或数组
我想在WHILE循环中初始化一个变量,以便在后续步骤中使用该变量。Arrays 如何在sql server 2012中初始化变量或数组,arrays,tsql,variables,loops,Arrays,Tsql,Variables,Loops,我想在WHILE循环中初始化一个变量,以便在后续步骤中使用该变量。 如何为SELECT语句初始化varchar数组?我是这样使用它的: DECLARE @SerialNumber AS VARCHAR WHILE ( @SerialNumber = SELECT UnitInContainer.UnitSerialNumber FROM UnitInContainer WHERE ContainerCode = @Code ) I
如何为SELECT语句初始化varchar数组?我是这样使用它的:
DECLARE @SerialNumber AS VARCHAR
WHILE (
@SerialNumber = SELECT UnitInContainer.UnitSerialNumber
FROM UnitInContainer
WHERE ContainerCode = @Code
) IS NOT NULL
SELECT TOP 1 @CreatedUserName = UnitInStep.CreatedByUserName,
@CreatedOn = UnitInStep.CreatedOn,
@DeactivatedOn = UnitInStep.DeactivatedOn,
@UnitInContainerID = UnitInStep.UnitInContainerID,
@UnitSerialNumber = UnitInStep.UnitSerialNumber,
@ContainerCode = UnitInStep.ContainerCode,
@StepSequence = UnitInStep.StepSequence,
@RouterItemName = UnitInStep.RouterItemName,
@RouterRevisionNumber = UnitInStep.RouterRevisionNumber
FROM UnitInStep
INNER JOIN RouterStepAttribute
ON UnitInStep.RouterItemName = RouterStepAttribute.RouterItemName
AND UnitInStep.RouterRevisionNumber = RouterStepAttribute.RouterRevisionNumber
AND UnitInStep.StepSequence = RouterStepAttribute.StepSequenc
WHERE GETDATE() BETWEEN UnitInStep.CreatedOn
AND UnitInStep.DeactivatedOn RouterStepAttribute.StepTypeStepTypeValue = 'TestChamberAutoResult'
AND UnitInStep.UnitSerialNumber = @SerialNumber
END
试试这个:
DECLARE @SerialNumber AS VARCHAR
SELECT @SerialNumber = UnitInContainer.UnitSerialNumber
FROM UnitInContainer
WHERE ContainerCode = @Code
WHILE (@SerialNumber is not null)
BEGIN
-- The longer select using @SerialNumber in the where clause
SELECT @SerialNumber = UnitInContainer.UnitSerialNumber
FROM UnitInContainer
WHERE ContainerCode = @Code
END
它重复较短的select,但如果出现问题,您可以将其放入函数中。请格式化您的代码,以便我们阅读。