Sql server 存储过程中交换了两个变量的值
我修改了一个存储过程,并添加了一个要添加到表中的额外参数。问题是添加的参数的值正在与原始参数交换Sql server 存储过程中交换了两个变量的值,sql-server,stored-procedures,Sql Server,Stored Procedures,我修改了一个存储过程,并添加了一个要添加到表中的额外参数。问题是添加的参数的值正在与原始参数交换 ALTER PROCEDURE [dbo].[spWeb_BulkGenerateWRsDevices] ( @WorkRequestDeviceId nvarchar(max) = NULL, @TechnicianId int = NULL, @RequiredBy datetime = NULL, @Priority int = NULL, @WRTypeId int,
ALTER PROCEDURE [dbo].[spWeb_BulkGenerateWRsDevices]
(
@WorkRequestDeviceId nvarchar(max) = NULL,
@TechnicianId int = NULL,
@RequiredBy datetime = NULL,
@Priority int = NULL,
@WRTypeId int,
@WorkRequestSummary nvarchar(255) = NULL,
@AuthorOfRequest int,
@Contact nvarchar(40) = NULL,
@PhoneNo nvarchar(20) = NULL,
@StatusId int,
@Created datetime = NULL,
@CustomerId int
)
AS
/* Update the WR record */
BEGIN
DECLARE @COUNT INT
SET @COUNT =(SELECT COUNT(*) FROM WorkRequest WHERE WorkRequestDeviceId IN(SELECT stringval FROM dbo.CSV(@WorkRequestDeviceId)))
IF @COUNT >0
BEGIN
DECLARE @InsertedRows AS TABLE (WorkRequestId int,WorkRequestDeviceId int)
INSERT INTO WorkRequest
(AllocatedTo,RequiredBy,Priority,WRTypeId,WorkRequestSummary,AuthorOfRequest,
Contact,PhoneNo,StatusId,DateOfRequest,WorkRequestDeviceId,CustomerId)
OUTPUT Inserted.WorkRequestId,Inserted.WorkRequestDeviceId INTO @InsertedRows
SELECT @TechnicianId ,@RequiredBy,@Priority,@WRTypeId,@WorkRequestSummary,@AuthorOfRequest,@Contact
,@PhoneNo,@StatusId,@Created,@CustomerId,* from dbo.fnSplit(@WorkRequestDeviceId, ',')
END
IF @COUNT = 0
BEGIN
INSERT INTO WorkRequest
(WorkRequestDeviceId)
SELECT * from dbo.fnSplit(@WorkRequestDeviceId, ',')
UPDATE WorkRequest
SET
AllocatedTo =@TechnicianId ,
RequiredBy = @RequiredBy,
Priority = @Priority,
WRTypeId = @WRTypeId,
WorkRequestSummary =@WorkRequestSummary,
AuthorOfRequest= @AuthorOfRequest,
Contact = @Contact,
PhoneNo = @PhoneNo,
StatusId = @StatusId,
DateOfRequest = @Created,
CustomerId = @CustomerId
WHERE WorkRequestDeviceId IN(SELECT stringval FROM dbo.CSV(@WorkRequestDeviceId))
END
我已经添加了CustomerId参数。当我调用该过程并说set WorkRequestDeviceId=312和CustomerId=148时,表WorkRequest有一条新记录,但WorkRequestDeviceId=148和CustomerId=312。我不熟悉存储过程,很抱歉我的无知,有什么想法吗?
James您的insert正在转换insert语句和select语句中的变量 将插入内容更改为:
INSERT INTO WorkRequest
(AllocatedTo,RequiredBy,Priority,WRTypeId,WorkRequestSummary,AuthorOfRequest,
Contact,PhoneNo,StatusId,DateOfRequest,CustomerId,WorkRequestDeviceId)
一切都会好起来的。嗨,谢谢你的快速回复,我一发帖就自己弄明白了。