【发布时间】:2018-01-03 11:25:07
【问题描述】:
在数据库中有一个名为 Tbl_GIT 的表。数据正在从多个地方插入/更新。我得到一些格式类似于01/02/18 01:53:30 p. m. 和01/02/18 08:22:24 a. m. 的临时数据,我希望如果数据以这种格式插入/更新,我可以在插入/更新后使用触发器更正此问题。表中归档的 GT9 和 GT10 为 varchar(50)。那么我该怎么做呢。
下面是我的示例数据
ID GT9 GT10
7686004401 12/8/17 4:33:36 PM 01/02/18 06:51:38 a. m.
6871761806 12/7/17 5:45:29 AM 01/02/18 12:03:33 p. m.
7694553943 12/21/17 7:22:59 AM 01/02/18 07:45:57 a. m.
7696265108 12/29/17 6:55:53 AM 01/02/18 12:38:24 PM
696265124 12/28/17 8:19:30 PM 01/02/18 08:56:21 AM
697024242 12/29/17 9:35:44 AM 01/02/18 05:25:28 AM
提前感谢您的帮助。
表 DDL
CREATE TABLE [dbo].[Tbl_GIT] (
[ORDERID] INT NOT NULL,
[ID] INT IDENTITY (1, 1) NOT NULL,
[GT1] VARCHAR (255) NULL,
[GT2] VARCHAR (255) NULL,
[GT3] VARCHAR (255) NULL,
[GT4] VARCHAR (255) NULL,
[GT5] VARCHAR (255) NULL,
[GT6] VARCHAR (255) NULL,
[GT7] VARCHAR (255) NULL,
[GT8] VARCHAR (255) NULL,
[GT9] VARCHAR (255) NULL,
[GT10] VARCHAR (255) NULL,
[GPSLONG] VARCHAR (20) NULL,
[GPSLAT] VARCHAR (20) NULL
);
【问题讨论】:
-
如果您需要触发器,我们需要您的表的 DDL。我将假设您还有其他列,例如 GT1、GT2、...GT8 或其他也有相同问题的列。如果是这样,您是否也考虑过使用 3NF?
-
@Larnu 是的,有 GT1 到 GT11,但我在上面提供了 GT9、GT11。因为所有其他人都在存储笔记,所以这对我来说并不重要
-
这些列中的任何一个都可能有错误的格式吗?另外,你不使用 3NF 的理由是什么?这也是一种选择吗?
-
@Larnu 不,这些字段中没有任何错误的数据格式
-
@Larnu 3NF 你在谈论标准化吗?抱歉,知道数据库中有 1 TB 的数据,我无法做到这一点
标签: sql-server sql-server-2008 triggers