【发布时间】:2014-07-23 21:50:44
【问题描述】:
我们的团队遇到了一个问题,即存储过程没有用数据填充每一列。存储过程从视图中填充表。我们从视图中手动运行 select 语句,并且预期的数据就在那里。然而,当我们运行插入语句时,表格中间的三列填充了空值。
Insert into Table2
Select * from View1
未填充特定列。我们测试了几次。 Table2.Num1,Table2.Num2,Table2.Num3 中未填充的列。这些字段的所有值都为 null。
Select * from View1
所有数据都存在。 View1.Num1、View1.Num2、View1.Num3。这些 where nvarchar(16) 字段填充了数字数据。
Truncate Table2
Insert into Table2
Select * from View1
未填充的相同特定列。桌子的其余部分做得很好。
Created Table3 based on Table2.
Insert into Table3
Select * from View1
工作正常,所有数据都在那里。
有人知道为什么会发生这种情况吗?
要求提供额外信息
两个表之间的表结构是一样的。
有问题的特定列是 varchar(16)
created table3 是什么意思?
我们生成了 Create table2 语句,然后将其重命名为 Table3 并执行它。表 3 与表 2 相同。
表结构
这是用于创建 table2 的语句。除了更改表名外,table3 使用相同的 create 语句。该视图具有相同数量的具有相同名称和定义的列。
CREATE TABLE table2(
[emp_id] [int] NOT NULL,
[company] [char](4) NULL,
[empno] [int] NOT NULL,
[termination_date] [datetime] NULL,
[rehire_date] [datetime] NULL,
[hire_date] [datetime] NULL,
[first_name] [varchar](128) NULL,
[last_name] [varchar](128) NULL,
[middle_name] [varchar](128) NULL,
[aka] [varchar](128) NULL,
[soc_sec_no] [char](9) NULL,
[birth_date] [datetime] NULL,
[sex] [char](1) NULL,
[race] [char](1) NULL,
[marital_status] [char](1) NULL,
[disability] [char](1) NULL,
[citizenship] [char](4) NULL,
[military] [char](1) NULL,
[union_code] [char](8) NULL,
[eeo_loc] [varchar](254) NULL,
[pers_status] [char](1) NULL,
[employ_type] [char](2) NULL,
[normal_hours] [decimal](12, 2) NULL,
[week_over_hours] [decimal](12, 2) NULL,
[adj_service_date] [datetime] NULL,
[shift] [char](8) NULL,
[visa_number] [char](30) NULL,
[visa_exp_date] [datetime] NULL,
[passport_number] [char](30) NULL,
[passport_exp_date] [datetime] NULL,
[process_cobra] [char](1) NULL,
[maiden_name] [varchar](128) NULL,
[Visa ID] [varchar](15) NULL,
[Visa Type Name] [varchar](16) NOT NULL,
[TA_Source] [varchar](1) NOT NULL,
[LW_ID] [varchar](15) NULL,
[LW_ID_Type] [varchar](18) NOT NULL,
[Taleo_ID] [varchar](254) NULL,
[Uses_Tobacco] [varchar](3) NOT NULL,
[Source_DB] [varchar](8) NOT NULL,
[UserID] [varchar](254) NULL,
[Num1] [varchar](16) NULL,
[Num2] [varchar](16) NULL,
[Num3] [varchar](16) NULL,
[AFF_EmpID] [int] NULL,
[MHC_EmpID] [int] NULL,
[daily_hours] [decimal](12, 2) NULL,
[Orig_Hire_Date] [datetime] NULL,
[WD_Continuous_Service_Date] [datetime] NULL,
[Hire_Date_PM] [datetime] NULL,
[CompanyServiceDate] [datetime] NULL,
[Prim_Order] [bigint] NULL,
[AD_Domain] [varchar](128) NULL,
PRIMARY KEY CLUSTERED
(
[empno] ASC
)
) ON [PRIMARY]
GO
【问题讨论】:
-
谢谢 Andrew,刚刚重新格式化,您已经完成了。
-
您能否发布这些专栏,以便我们了解发生了什么?目前,我们不得不相信您的话,这使得我们无法看到正在发生的事情并为您提供帮助。从表 1 中选择的结果也会有所帮助。
-
你怎么知道结构是一样的?他们使用相同的创建语句?还是您使用
Select into创建了一个? -
@Brad 我的理解是,最初创建表格时,它是使用 Select Into 语句创建的,然后稍微调整了表格。
-
@PCSgtL 怎么调整的?!发布这些表格的外观,否则我们将无法为您提供帮助。
标签: sql sql-server tsql