ストアドプロシージャを変更し、テーブルに追加するパラメータを追加しました。問題は、追加されたパラメーターの値が元のパラメーターと交換されていることです。
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です。ストアドプロシージャは初めてなので、無知で申し訳ありません。ジェームズ