【发布时间】:2015-03-20 11:28:50
【问题描述】:
是否可以在不必在每个查询中指定(和维护)静态类型的列列表的情况下解决这个问题?
DECLARE @src TABLE (Id INT, Created DATETIME)
INSERT INTO @src
VALUES (1, NULL)
DECLARE @dst TABLE (Id INT, Created DATETIME DEFAULT GETDATE() NOT NULL)
INSERT INTO @dst
SELECT *
FROM @src
错误:
无法将值
NULL插入列'Created',表'@dst';列不允许空值。
插入失败。
【问题讨论】:
-
您得到的错误仅仅是因为您已将 dst Created 列声明为“NOT NULL”,并且您试图从 src 插入一个 NULL 值。这有点像红鲱鱼。检查我的答案,以避免在每个查询中输入列列表。
标签: sql-server