久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

通過 alter table 命令刪除 T-SQL 中的約束 - 問題

Removing a constraint in T-SQL by alter table command - problem(通過 alter table 命令刪除 T-SQL 中的約束 - 問題)
本文介紹了通過 alter table 命令刪除 T-SQL 中的約束 - 問題的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在 t-SQL 中有以下代碼:

I have got the following code in t-SQL:

alter table Persons
drop primary key;

還有消息:消息 156,級別 15,狀態 1,第 10 行關鍵字primary"附近的語法不正確.

我檢查了不同的語法組合,但都沒有奏效.這里有什么問題?

I have checked different combinations of syntax and none have worked. What is wrong here?

表格就是這樣創建的 - 這只是學習的開始,非常簡單,只有兩個約束.

This is how a table has been created - it is just beggining of studying, so very simple one with only two constraints.

create table Persons(
PersonID int not null primary key,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

推薦答案

不是DROP PRIMARY KEY,而是DROP CONSTRAINT {Object Name}.例如:

CREATE TABLE dbo.YourTable (ID int NOT NULL);
GO
ALTER TABLE dbo.YourTable ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (ID);
GO
ALTER TABLE dbo.YourTable DROP CONSTRAINT PK_YourTable;
GO
DROP TABLE dbo.YourTable;

這就是為什么顯式命名您的對象如此重要的原因,如上所示,因為您現在不知道 CONSTRAINT 的名稱是什么.但是,您可以通過以下方式獲取名稱:

This is why it's so important to explicitly name your objects, as shown above, as you now don't know what the name of the CONSTRAINT is. You could, however, get the name with the following:

SELECT kc.[name]
FROM sys.key_constraints kc
     JOIN sys.tables t ON kc.parent_object_id = t.object_id
     JOIN sys.schemas s ON t.schema_id = t.schema_id
WHERE s.[name] = N'dbo'
  AND t.[name] = N'YourTable'
  AND kc.[type] = 'PK';

如果你真的不想找出名字然后寫語句,你可以使用動態語句:

If you really didn't want to find out the name and then write the statement, you could use a dynamic statement:

DECLARE @SQL nvarchar(MAX);
SET @SQL = (SELECT N'ALTER TABLE ' + QUOTENAME(s.[name]) + N'.' + QUOTENAME(t.[name]) + N' DROP CONSTRAINT ' + QUOTENAME(kc.[name]) + N';'
            FROM sys.key_constraints kc
                 JOIN sys.tables t ON kc.parent_object_id = t.object_id
                 JOIN sys.schemas s ON t.schema_id = t.schema_id
            WHERE s.[name] = N'dbo'
              AND t.[name] = N'YourTable'
              AND kc.[type] = 'PK');
EXEC sys.sp_executesql @SQL;

這篇關于通過 alter table 命令刪除 T-SQL 中的約束 - 問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Modify Existing decimal places info(修改現有小數位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運算符字符串中刪除重復項)
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 日本天堂一区二区 | 99热这里只有精品8 激情毛片 | 精品乱码一区二区三四区视频 | 日本福利片| 视频精品一区二区三区 | 亚洲视屏| 国产一区二区成人 | 免费日本视频 | 九色 在线 | 日韩精品区 | 国产精品久久久久久久久久久免费看 | 中国一级毛片免费 | 久久久精品网 | 999国产视频 | 国产网站在线免费观看 | 欧美日韩免费在线 | 日韩成人免费视频 | 美国一级片在线观看 | 亚洲一区二区三区四区五区午夜 | 97免费在线观看视频 | 国产精品久久久久久久久 | 亚洲精品久久久久国产 | 日韩免费看片 | 国产精品爱久久久久久久 | 国产在线精品一区二区 | 国产成人精品免高潮在线观看 | 天天看天天操 | 看羞羞视频免费 | 久久99蜜桃综合影院免费观看 | 亚洲精品一区二区三区 | 香蕉视频一区二区 | 97精品国产97久久久久久免费 | 久久电影一区 | 亚洲精品一区二区网址 | 在线一区 | 日韩av免费在线观看 | av网站免费 | 在线黄av| 亚洲精品一区二区三区四区高清 | 天天天操 | 在线观看黄视频 |