Sql-Server

SSIS 中的數據流任務中的驗證警告

  • January 9, 2017

我正在嘗試使用數據流任務將數據載入到我的 DimEmployee 表中。但是,我注意到當我執行 SSIS 時,DimEmployee 填充了 9 條記錄中的 4 條記錄,並且 EmpKey 從 -1 開始計數,然後生成隨機數!執行包時我也有一個警告:

警告 1 驗證警告。數據流任務:{DC10B0CA-A6DE-4036-98A6-496811C09D4A}:由於從長度為 25 的數據流列“TitleOfCourtesy”插入長度為 8 的數據庫列“Title”中的數據,可能會發生截斷。 DimEmployee.dtsx 0 0

我在我的 SSMS 中創建了一個過程,它假設通過“未知”填充列中的空值

USE [NorthWindDW]
GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[Insert_New_Employee] 

AS
BEGIN

   SET NOCOUNT ON;
   IF NOT EXISTS 
   (
       SELECT * FROM [dbo].DimEmployee
       WHERE EmpKey = -1
   )

   BEGIN
   SET IDENTITY_INSERT [dbo].[DimEmployee] ON 
   INSERT [dbo].[DimEmployee] (EmpKey, EmpId,Title, EmpFirstName, EmpLastName, HireDate,Country, StoreCode, Telephone,JobTitle) VALUES
   (-1,-1,'UNKNOWN','UNKNOWN','UNKNOWN','1900-01-01', 'UNKNOWN','UNKNOWN', 'UNKNOWN','UNKNOWN');
   SET IDENTITY_INSERT [dbo].[DimEmployee] OFF
   END
END

GO

這是我的 DimEmployee 表

Create Table [dbo].[DimEmployee]
(EmpKey        INT IDENTITY NOT NULL,
EmpId          INT NOT NULL,
EmpFirstName   NVARCHAR(50) NOT NULL,
EmpLastName    NVARCHAR(50) NOT NULL,
Title          NVARCHAR(8) NOT NULL,
HireDate       DATE        NOT NULL,
Country        NVARCHAR(50) NOT NULL,
StoreCity      NVARCHAR(50) NOT NULL,
Telephone      NVARCHAR(25) NOT NULL,
JobTitle       NVARCHAR(50) NOT NULL);
Go

您的警告看起來源於您的輸出列數據庫映射。‘TitleOfCourtesy’ 輸出列數據類型/長度需要匹配它映射到的 DimEmployee 中的任何列。

就 4 條記錄而言,我會看到第 5 條中的數據是什麼,因為這似乎是錯誤所在。每當我遇到您的問題時,它總是數據類型不匹配。

引用自:https://dba.stackexchange.com/questions/160439