gpt4 book ai didi

sql-server - SQL Server : rename primary key

转载 作者:行者123 更新时间:2023-12-02 23:33:42 31 4
gpt4 key购买 nike

我有一个表 doc.MyTable,我想通过重命名为 doc._MyTable 来弃用它。然后,我想创建一个新的 doc.MyTable,其主键与旧的 doc.MyTable 具有相同的主键。问题是 SQL Server 说主键已经存在。所以这意味着我也需要重命名旧的主键。

我尝试了以下方法:

EXEC SP_RENAME 'doc.MyTable', '_MyTable'

-- Method 1
EXEC SP_RENAME 'PK_MyTable', 'PK__MyTable'

-- Method 2
ALTER TABLE [doc].[_MyTable] DROP CONSTRAINT [PK_MyTable]
ALTER TABLE [doc].[_MyTable] ADD CONSTRAINT [PK__MyTable]
PRIMARY KEY CLUSTERED
(
[document_id] ASC,
[line_id] ASC,
[sub_line_id] ASC
)

-- Create new table
CREATE TABLE [doc].[MyTable] (
... columns
CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED (
... key columns
)
... extra conditions

方法 1 抛出此错误:

No item by the name of 'PK_MyTable' could be found in the current database 'db_dev', given that @itemtype was input as '(null)'.

虽然方法 2 抛出这个:

Violation of PRIMARY KEY constraint 'PK_MyTable'. Cannot insert duplicate key in object 'PK.MyTable'.
The duplicate key value is (10358930, 336000, 0).`

当我尝试为新表创建新主键时。

我一次只使用两种“方法”之一。我该如何解决这个问题?

最佳答案

尝试以下解决方案:

EXEC sp_rename '[TableSchema].[TableName].[ConstraintName]', 'NewConstraintName'

示例:

EXEC sp_rename '[doc].[_MyTable].[PK_MyTable]', '[PK__MyTable]'

关于sql-server - SQL Server : rename primary key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592632/

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