SQL Server可以创建临时表,所有列都可以自动为空吗?

Sui*_*eep 1 sql sql-server

通过使用以下查询,testingTemp将创建临时表并且列的定义取决于oriTable.(我猜)

Select a.ID AS [a], 
       b.ID AS [b], 
       c.ID AS [c]
INTO #testingTemp
FROM
oriTable
Run Code Online (Sandbox Code Playgroud)

我的第二个查询如下:

Insert into #testingTemp (c)
Select z.ID AS [c]
FROM
oriTable
Run Code Online (Sandbox Code Playgroud)

现在,当我执行第二个查询时,SQL Server投诉

Cannot insert the value NULL into column 'a' , table 'tempdb.dbo.testingTemp...blabla
Run Code Online (Sandbox Code Playgroud)

我是否知道如何在不改变oriTable结构的情况下解决这个问题?

Mar*_*ith 5

使用

SELECT ID + 0 AS [a],
       ID + 0 AS [b],
       ID + 0 AS [c]
INTO   #testingTemp
FROM   oriTable 
Run Code Online (Sandbox Code Playgroud)

通过表达式计算的列的可空性几乎总是假定为NULL而不是NOT NULL