0
여기 예제를 따르려고하지만 내 임시 테이블에 문제가 있습니다. 도와주세요? 시험 절차 및 결과를 반환 - OUTPUT문자열에서 날짜 및/또는 시간을 변환 할 때 변환이 실패했습니다. SQL MERGE
CREATE TABLE #MyTempTable
(ExistingDescription nvarchar(MAX),
ExistingName nvarchar(MAX),
ExistingLocation nvarchar(MAX),
ExistingAssetID nvarchar(MAX),
ExistingHostname nvarchar(MAX),
ExistingTimeZone nvarchar(MAX),
[ExistingID] nvarchar(MAX),
ExistingPort int,
ExistingStatus int,
ExistingDate datetime,
ActionTaken nvarchar(10),
NewDescription nvarchar(MAX),
NewName nvarchar(MAX),
NewLocation nvarchar(MAX),
NewAssetID nvarchar(MAX),
NewHostname nvarchar(MAX),
NewTimeZone nvarchar(MAX),
[NewID] nvarchar(MAX),
NewPort int,
NewStatus int,
NewDate datetime
);
GO
에 대한 TEMPTABLE 만들기 - https://technet.microsoft.com/en-us/library/bb510625.aspx
내 SPROC
CREATE PROCEDURE gssenv.InsertMorphoDevice
@Name nvarchar(MAX),
@Description nvarchar(MAX),
@Location nvarchar(MAX),
@AssetID nvarchar(MAX),
@TimeZone nvarchar(MAX),
@Hostname nvarchar(50),
@Port int,
@Status int,
@ID nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
MERGE gssenv.Morpho AS target
USING (SELECT @ID,@Name,@Description,@Location,@AssetID,@TimeZone,@Hostname,@Port,@Status) AS source (ID,Name,Description,Location,AssetID,TimeZone,Hostname,Port,Status)
ON (target.ID = source.ID)
WHEN MATCHED THEN
UPDATE
SET Hostname = source.Hostname,
Name = source.Name,
Description = source.Description,
Location = source.Location,
AssetID = source.AssetID ,
Port = source.Port,
Status = source.Status,
ID = source.ID
WHEN NOT MATCHED THEN
INSERT (ID,Name,Description,Location,AssetID,TimeZone,Hostname,Port,Status)
VALUES (source.ID,source.Name,source.Description,source.Location,source.AssetID,source.TimeZone,source.Hostname,source.Port,source.Status)
OUTPUT deleted.*, $action, inserted.* INTO #MyTempTable;
END;
GO
을 만듭니다.
EXEC gssenv.InsertMorphoDevice @Name = 'ABC', @Description = 'Name',@Location = 'test',@AssetID= 'NEWASSSETID', @Hostname = 'MPK40-PSEC-BIO-0024AE01B5C5.thefacebook.com',
@Port = '1234',@Status =2,@TimeZone = 'tzsdf', @ID = '2E4F5071-EAD7-4E22-8AB7-36AB20C2A33A'
오류 메시지 : 여기
Msg 241, Level 16, State 1, Procedure InsertMorphoDevice, Line 15 [Batch Start Line 74]
Conversion failed when converting date and/or time from character string.
'OUTPUT이 삭제되었습니다. *, $ action, inserted. * INTO #MyTempTable;'OUTPUT '이'# MyTempTable'의 정의와 일치하지 않습니다. – Nicarus