【发布时间】:2018-02-06 06:25:25
【问题描述】:
我正在尝试从表中选择一行默认值。但是,我不想在原始表中创建新行。我的原始表具有为所有列定义的非空默认值(所有空白或零)(唯一标识符除外)。我首先创建临时表:
SELECT
TOP 0 *
INTO
#Table
FROM
Database.dbo.Table
然后我检查空表:
SELECT
*
FROM
#Table
到目前为止,一切看起来都很好。没有行,但我可以看到原始表中的所有列。然后,我尝试在表中插入所有列的默认值:
INSERT INTO
#Table
DEFAULT VALUES
我得到以下错误,而不是成功:
Cannot insert the value NULL into column 'Column',
table 'tempdb.dbo.#Table___0001A';
column does not allow nulls. INSERT fails.
接下来我尝试插入仅定义了一个字段的行。
INSERT INTO
#Table
(Column)
VALUES
('Value')
同样的结果。我的原始表中的列默认值的定义似乎未包含在临时表的创建中。有什么建议吗?
【问题讨论】:
标签: sql sql-server temp-tables