【发布时间】:2018-06-01 11:54:49
【问题描述】:
情况:
我有一个现有的旧表 [dbo].[Values],它位于 SQL Server 2017 上。
在这张表中,我有 3 列。
- int tableid(主键)
- char(8)码
- 字符 (7) 说明
代码和描述都是自定义数据类型,但都只是 char (8) ,char (7) 没有额外的逻辑。
动作
如果我插入到此表中,其中列代码的插入值大于 8 个字符,我将 * 插入该列。
没有给出错误或警告。
我查看了触发器、约束、策略、表的创建脚本、自定义数据类型。我找不到任何有逻辑表明 if truncate set value = *
问题
sql server 的哪一部分在保存到表中之前会修改值?
【问题讨论】:
-
你能复制表(即使用相同的 DDL 创建一个 [dbo].[Values2])并尝试那里发生的情况吗?只是为了确保到目前为止没有任何东西逃脱了您的分析。
-
@stickybit - 不是真的。问题“为什么会发生这种情况?”并且答案“因为 X”与问“我知道产品做 X。为什么它是这样设计的”是不同的 Q
标签: sql sql-server sql-server-2017