gpt4 book ai didi

sql - 如何两次插入临时表

转载 作者:行者123 更新时间:2023-12-04 23:43:27 26 4
gpt4 key购买 nike

我选择了一些类似于以下内容的 SQL:

IF EXISTS(SELECT name FROM tempdb..sysobjects WHERE name Like N'#tmp%'
and id=object_id('tempdb..#tmp'))
DROP TABLE #tmp

into #tmp
select * from permTable

在继续处理之前,我需要向#tmp 添加更多数据:
insert into #tmp
select * from permTable2

但这会产生错误,因为 SQL 假定了 #tmp 列的大小和类型(例如,如果 permTable 有一列充满整数,但 permTable2 具有相同名称的列,但在一个记录中为 NULL,您将得到“无法将值 NULL 插入列中” IsPremium',表 'tempdb.dbo.#tmp")。

如何让#tmp 拥有我想要的类型?这真的是不好的做法吗?

最佳答案

你有没有考虑过创建一个表变量?您可以像这样声明列

declare @sometable table(
SomeField [nvarchar](15),
SomeOtherField [decimal](15,2));

关于sql - 如何两次插入临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3979321/

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