错误SQL72014:将varchar值转换为数据类型int时转换失败

时间:2013-12-18 20:58:03

标签: sql-server sql-server-2012

我在将测试数据插入表格时遇到问题。我收到标题中列出的错误。我没有找到解决方案,我做了很多谷歌搜索。

在Visual Studio 2012解决方案中,我有几个项目,其中一个是数据库项目。我正在定义几个表。问题是:

CREATE TABLE [dbo].[tblKppHierarchyPcl]
(
    [ID] NUMERIC(18,0) NOT NULL,
    [Name] VARCHAR(500),
    [PartStructureKey] NUMERIC(18,0) NOT NULL,
    [PartNumber] VARCHAR(500) NOT NULL,
    [ParentPartNumber] VARCHAR(500) NULL,
    [TargetCost] DECIMAL(30,4) NULL,
    [UnitCost] DECIMAL(30,4) NULL,
    [CostMaturityID] INT NULL,
    [Ratio] DECIMAL(16,2) NULL,
    [Contribution] DECIMAL(16,2) NULL,
    [ChildPartTargetWeight] NUMERIC(18,2) NULL,
    [ChildPartWeight] NUMERIC(18,2) NULL,
        CONSTRAINT [FK_tblKppHierarchyPcl_tblCostMaturity] FOREIGN KEY (CostMaturityID) 
          REFERENCES    tblCostMaturity([CostMaturityID]) 
)

使用Script.PostDeployment1.sql文件,我试图用这样的测试数据填充表:

INSERT INTO [dbo].[tblKppHierarchyPcl]
       ([ID]
       ,[Name]
       ,[PartStructureKey]
       ,[PartNumber]
       ,[ParentPartNumber]
       ,[TargetCost]
       ,[UnitCost]
       ,[CostMaturityID]
       ,[Ratio]
       ,[Contribution]
       ,[ChildPartTargetWeight]
       ,[ChildPartWeight]) VALUES
(61090,'Coolant Quick Disconnect',125216,'FS-252-6FO','H432677DB-1',27.03,70.61,2,2.61,0.01,0,NULL)

我正在尝试通过SqlPublish将数据推送到数据库。

我的问题是:当部署后脚本尝试插入数据时,我收到以下错误:

Error SQL72014: .Net SqlClient Data Provider: Msg 245, Level 16, State 1, Line 76 Conversion 
failed when converting the varchar value 'Coolant Quick Disconnect' to data type int.

因此,在“名称”列中插入“Coolant Quick Disconnect”会出现问题。 Name列是CLEARLY一个varchar列但不知何故它认为它是一个int列。

有什么想法吗?

编辑:我正在使用SQL Server 2012.此表上没有触发器。

1 个答案:

答案 0 :(得分:1)

问题是由于列的数据类型最初是一个int,然后将columns数据类型更改为varchar,并且数据库项目的问题是缓存先前的模式。部署两次将刷新数据库项目的模式以检测新的数据类型。