gpt4 book ai didi

sql-server - 使用 SQL Server SELECT INTO 创建可为空的列?

转载 作者:行者123 更新时间:2023-12-01 19:40:07 24 4
gpt4 key购买 nike

当我在 SQL Server 中使用 select into 创建临时表时,是否有方法指定列应可为空?我有一个多步骤过程,通过选择很多列来创建临时表(这就是为什么我不执行create table #tmp (...))。创建临时表后,我将更新一些列,其中一些更新可能会使字段无效。

我知道我可以执行alter table alter column语句来实现我想要的,但我很好奇是否有办法在select中指定这一点本身。我知道您可以内联cast您的列以获得所需的数据类型,但我看不到您如何指定可为空性。

最佳答案

可空性是从源列继承的。

您可以通过表达式失去或获得可为空性:

示例(常量文字似乎有问题 - 需要一个可以返回 NULL 的良好 NOOP 函数):

CREATE TABLE SO5465245_IN
(
a INT NOT NULL
,b INT NULL
) ;
GO

SELECT COALESCE(a, NULL) AS a
,ISNULL(b, 0) AS b
,COALESCE(10, NULL) AS c1
,COALESCE(ABS(10), NULL) AS c2
,CASE WHEN COALESCE(10, NULL) IS NOT NULL THEN COALESCE(10, NULL) ELSE NULL END AS c3
INTO SO5465245_OUT
FROM SO5465245_IN ;
GO

SELECT TABLE_NAME
,COLUMN_NAME
,IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME LIKE 'SO5465245%'
ORDER BY TABLE_NAME
,ORDINAL_POSITION ;
GO

DROP TABLE SO5465245_IN ;
GO

DROP TABLE SO5465245_OUT ;
GO

关于sql-server - 使用 SQL Server SELECT INTO 创建可为空的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com