gpt4 book ai didi

sql - Identity_insert 在临时表中

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

我在 SQL Server 2012 和 2008 R2 中运行存储过程时遇到问题,而它在 SQL Server 2000 和 2005 中运行良好。

请参阅下面的代码:

SELECT * INTO #TB_Table_1
FROM (SELECT TOP 1 * FROM TB_Table_2) A

TRUNCATE TABLE #TB_Table_1

我现有的 sp 有此代码。目的只是复制TB_Table_2的结构。

注意:TB_Table_2 有一个身份列 Master_ID

接下来,我将尝试使用以下代码插入数据。这就是我遇到麻烦的地方。

INSERT INTO #TB_Table_1
SELECT * FROM TB_Table_2
WHERE ISNULL(Date,'') = ''
AND ISNULL(ID,'') = ''

我需要在 SQL Server 中设置一些东西才能使其工作吗?

编辑:

我收到的错误是

An explicit value for the identity column in table '#TB_Table_1' can only be specified when a column list is used and IDENTITY_INSERT is ON.

最佳答案

如果您的临时表有一个身份,要进行此插入,您需要首先:

SET IDENTITY_INSERT #TB_Master_Organization ON

在插入语句之前。

您需要指定要插入的列:

INSERT INTO #TB_Master_Organization (col1, col2, col3..)
SELECT * FROM TB_Master_Organization
WHERE ISNULL(DeactivatedDate,'') = ''
AND ISNULL(DeactivatedByID,'') = ''

然后,启动identity_Insert。

所以,你得到了:

SET IDENTITY_INSERT #TB_Master_Organization ON
INSERT INTO #TB_Master_Organization (col1, col2, col3..)
SELECT * FROM TB_Master_Organization
WHERE ISNULL(DeactivatedDate,'') = ''
AND ISNULL(DeactivatedByID,'') = ''
SET IDENTITY_INSERT #TB_Master_Organization OFF

此外,如果这不起作用,take a look at this, maybe can help you

关于sql - Identity_insert 在临时表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697304/

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