iT邦幫忙

0

SQL 索引名稱重複 ,可直接刪除嗎?

  • 分享至 

  • xImage

您好:

CREATE TABLE [dbo].[DBMAIL_WARM](
	[SEQ_NO]  [varchar](8)  NOT NULL,    
 CONSTRAINT [PK_DBMAIL_WARM] PRIMARY KEY CLUSTERED 
(
	[SEQ_NO] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

然後我把 drop table ,然後

CREATE TABLE [dbo].[DBMAIL_WARM_2](
	[SEQ_NO]  [varchar](8)  NOT NULL,    
 CONSTRAINT [PK_DBMAIL_WARM] PRIMARY KEY CLUSTERED 
(
	[SEQ_NO] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

因為用到同名 PK_DBMAIL_WARM,

無法新增TABLE,
請問可以直接到

SELECT TYPE,name, object_id, OBJECT_NAME(object_id) AS object_name, parent_object_id, OBJECT_NAME(parent_object_id) AS table_name
FROM sys.objects
WHERE name LIKE '%DBMAIL_WARM%'
ORDER BY name ASC

刪掉嗎?
還是有特殊的方式才能刪

謝謝!

因為你只刪除資料表~
約束條件也是物件~你沒有刪除到~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
win895564
iT邦研究生 5 級 ‧ 2023-05-18 17:12:06
最佳解答

1.開啟 SQL Server Management Studio 或任何支援 SQL 命令的工具。
2.在新的查詢視窗中,輸入以下 SQL 命令:

USE <資料庫名稱>; -- 將 <資料庫名稱> 替換為您要使用的資料庫名稱
GO

ALTER TABLE dbo.DBMAIL_WARM
DROP CONSTRAINT PK_DBMAIL_WARM;
GO

這個命令將刪除名為 "PK_DBMAIL_WARM" 的主鍵約束。
3.執行這個 SQL 命令,以刪除主鍵約束。
在執行這個命令之後,您應該可以成功創建新的 DBMAIL_WARM_2 表。

請注意,在刪除主鍵約束之前,請確保沒有其他依賴於該主鍵的物件存在。如果有其他物件依賴於該主鍵,您可能需要先刪除或修改相關物件,以確保沒有相互依賴的問題。

此外,請注意執行任何修改資料庫結構的命令都應謹慎進行。在執行之前,請先備份您的資料庫,以防止不可預測的問題發生。

我要發表回答

立即登入回答