SQL Server 2008 R2——TRUNCATE TABLE 無法截斷表 該表正由 FOREIGN KEY 約束引用

来源:http://www.cnblogs.com/wlsandwho/archive/2016/01/13/5126708.html
-Advertisement-
Play Games

手冊上只說了truncate table不能截斷由外鍵約束引用的表。也沒給個例子。我自己寫一個吧。 還空著那麼多地方,也沒啥說的,鄙視那些無視版權隨意抓取博文的爬蟲小網站站長。


=================================版權聲明=================================

版權聲明:原創文章 止轉載 

請通過右側公告中的“聯繫郵箱([email protected])”聯繫我

勿用於學術性引用。

勿用於商業出版、商業印刷、商業引用以及其他商業用途。                   

 

本文不定期修正完善。

本文鏈接:http://www.cnblogs.com/wlsandwho/p/5126708.html

恥辱牆:http://www.cnblogs.com/wlsandwho/p/4206472.html

=======================================================================

沒啥說的,鄙視那些無視版權隨意抓取博文的爬蟲小網站站長。http://www.cnblogs.com/wlsandwho

下麵開始點名

 

Asp.net教程_mvc4_C#_Ado.net_seo_Java_HTML CSS教程
www.tzwhx.com
www.th7.cn
解決方案網
幫客之家 | IT技術 建站編程 電腦教程 www.bkjia.com
軟體開發,程式錯誤,exception
www.java123.net
一鍵重裝系統_打造智能化重裝系統軟體
www.bitscn.com

 

=======================================================================

手冊上只說了:http://www.cnblogs.com/wlsandwho

可沒給例子。

今天有人問這個,我就索性寫了一個。

作為一隻C++,每天在SQLServer群里做科普,好奇怪的樣子。http://www.cnblogs.com/wlsandwho

=======================================================================

下麵的示例代碼中,表間關係為“表A的a引用表B中的b作為外鍵”。王林森,TRUNCATE TABLE,外鍵,表,該表正由 FOREIGN KEY 約束引用,無法,截斷,wlsandwho

試圖執行truncate table B

代碼需要一句一句執行:http://www.cnblogs.com/wlsandwho

 1 USE tempdb
 2 GO
 3 
 4 --創建表B
 5 CREATE TABLE tB(b NVARCHAR(10) PRIMARY KEY)
 6 GO
 7 --插入一個測試數據
 8 INSERT INTO tB
 9         ( b )
10 VALUES  ( N'wlsandwho'  -- b - nvarchar(10)
11           )
12 GO
13 
14 --創建表A
15 CREATE TABLE tA(a NVARCHAR(10) )
16 GO
17 --添加外鍵
18 ALTER TABLE tA 
19 ADD CONSTRAINT FK_fromBb FOREIGN KEY(a)
20 REFERENCES tB(b)
21 GO
22 
23 --添加測試數據
24 --INSERT INTO tA( a ) VALUES  ( N'thbytwo')--這一行無法運行,因為B.b中沒有這個值
25 INSERT INTO tA( a ) VALUES  ( N'wlsandwho')
26 GO
27 
28 --試圖截斷表B,失敗
29 TRUNCATE TABLE tB
30 GO
31 
32 --試圖清空表A後截斷表B,失敗
33 DELETE FROM tA
34 GO
35 SELECT * FROM tA
36 GO
37 TRUNCATE TABLE tB
38 GO
39 
40 --恢復之前的場景
41 INSERT INTO tA( a ) VALUES  ( N'wlsandwho')
42 GO
43 
44 --試圖先刪除外鍵再截斷,成功
45 ALTER TABLE tA DROP CONSTRAINT FK_fromBb
46 GO
47 TRUNCATE TABLE tB
48 GO
49 
50 --結論:不能對FOREIGN KEY約束引用的表使用 TRUNCATE TABLE
51 DROP TABLE tB
52 DROP TABLE tA
53 GO

順便說下,我很少用外鍵。因為我相信我的前臺同學,也就是我。我也相信我的後臺同學,也是我。我也相信我的資料庫同學,沒錯,還是我。http://www.cnblogs.com/wlsandwho

反正小作坊能跑就行了。什麼?不能跑?我跑!http://www.cnblogs.com/wlsandwho

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 作為低端 VPS ,大家購買搬瓦工(banwagonhost)用得最多的就是拿來科學上網了。搬瓦工可能自己也發現了這個問題,為了滿足廣大消費者的需求,因時制宜地推出了一鍵翻牆的安裝選項,在此之前還推出了 OpenVPN 的一鍵安裝,建議不要使用OpenVPN 。它VPN協議特征明顯,GFW可以非常容...
  • Hadoop HDFS負載均衡 轉載請註明出處: "http://www.cnblogs.com/BYRans/" <br/ Hadoop HDFSHadoop 分散式文件系統(Hadoop Distributed File System),簡稱 HDFS,被設計成適合運行在通用硬體上的分散式...
  • 一、集群的理論知識1.1 集群成員MongoDB的集群類似於GreenPlum集群,由一個入口節點負責任務分發與結果統計,分片結節負責執行任務。不同GP,多了一個config servers。集群有三個組件:A。shards:分片,即數據結點,存儲數據和執行計算。為了保證高可用和數據一致性,生產環境...
  • MongoDB的C#驅動只有一些類是線程安全的,其中包含(MongoServer、MongoDatabase、MongoCollection、MongoGridFS),其他的大多數類不是線程安全的。有些場景需要保證數據的正確性,需要將一系列的操作綁定到DB級對象。那麼可以用類似事務控制的方式保證一致...
  • 最近自己在做一個小系統玩的時候涉及到了文件的上傳,於是在網上找到Java上傳文件的方案,最後確定使用common-fileupload實現上傳操作。需求說明用戶添加頁面有一個“上傳”按鈕,點擊按鈕彈出上傳界面,上傳完成後關閉上傳界面。所需Jar包commons.fileupload-1.2.0.ja...
  • Hadoop7天課程 課程體系 Day01>>>>>>>>>>>>>>>>>>>> hadoop項目簡介 hadoop簡介 hadoop前景 apache的開源項目 解決問題:(核心) 海量數據的存儲(HDFS) ---Hadoop分散式文件系統,解決機器怎麼存儲 海量數據的分析(MapReduce...
  • http://www.2cto.com/database/201204/126772.html
  • 本文目錄列表:1、基於當前日的小時數和分鐘數2、mysqlunix_timestamp和from_unixtime的mssql實現3、總結語4、參考清單列表基於當前日的小時數和分鐘數 平時工作中遇到過一天內個時間段的用戶登錄情況的需求,也有針對每個小時內的分鐘段內的用戶的活躍度的需求,很多類似的需求...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...