【发布时间】:2020-12-19 20:52:41
【问题描述】:
我正在使用 Sybase ASE 15.7 并且在使用默认值插入代理表时遇到问题。我们希望将数据从源表迁移到目标表,其中目标表在远程服务器中具有不为空和默认值的附加列。请查看下表详细信息。
源表:
CREATE TABLE TABLE_SOURCE
(
COL1 INT,
COL2 INT,
COL3 INT
)
目标表:
CREATE TABLE TABLE_TARGET
(COL1 INT,
COL2 INT,
COL3 INT,
COL4 INT Default 0 NOT NULL
)
在源数据库中创建代理表:
CREATE Proxy_Table TAB_TARGET AT 'TGT_SERVER.DB.DBO.TABLE_TARGET'
在 Source 中,我们有三列的详细信息,我们用它来构建 Query。
脚本:
INSERT INTO TAB_TARGET (COL1,COL2,COL3) values (1,2,3)
错误:
The column COL4 in table TAB_TARGET does not allow null values., Error 233, Line 1
虽然我们已经为 COL4 声明了默认的 costraint,但它不接受通过代理表。有什么办法可以解决这个问题。我们有超过 5000 个用户正在迁移数据的表,并且这个问题存在于 100 多个表中。
有什么方法可以插入目标表而不出现 NOT NULL 问题
【问题讨论】: