SQL Server "DROP TABLE 表名 CASCADE" 顯示"CASCADE"附近有語法錯誤的原因
在學習資料庫的過程中提到了使用CASCADE關鍵字來強制刪除已被引用的關係(及其引用方)。
在實踐過程中,使用SQL Server執行“ DROP TABLE Course CASCADE”卻被提示有語法錯誤。
事實上報錯的原因在於SQL Server不支援在刪除過程中使用CASCADE關鍵字(見課本下圖):
可看出SQL Server在刪除表時並不區分RESTRICT或是CASCADE。
既然不支援,那為何又能識別CASCADE為關鍵字呢?
事實上在SQL Server中CASCADE關鍵字用於在建表操作時預先建立級聯關係(通常和DENY關鍵字配合使用,所以報有語法錯),建表後執行DROP操作時就不需要使用者再指定刪除模式了。
因此標題的那句“CASCADE”完全是用錯了地方,應予以刪除。
若因外來鍵問題報錯則應先將引用方刪除或建立前使用CASCADE關鍵字確立級聯關係。
相關推薦
SQL Server "DROP TABLE 表名 CASCADE" 顯示"CASCADE"附近有語法錯誤的原因
在學習資料庫的過程中提到了使用CASCADE關鍵字來強制刪除已被引用的關係(及其引用方)。 在實踐過程中,使用SQL Server執行“ DROP TABLE Course CASCADE”卻被提示有語法錯誤。 事實上報錯的原因在於SQL Server不支援在刪除過程中使用
Java連線SQL資料庫時碰到com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有語法錯誤。
在寫一個小東西的時候遇到了這個問題,不知道怎麼解決。 希望大神們能幫忙解決下。 com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有語法錯誤。 at com.microsoft.sqlserv
如何獲取SQL Server所有的資料庫名、表名、欄位名及欄位型別?
解決方案 – 獲取所有資料庫名 select name from master..sysdatabases – 獲取所有表名 select name from YDK..
Sql Server 2008獲取表的註釋,欄位名,欄位型別,欄位描述等,程式碼自動生成必備
SELECT 表名 = case when a.colorder=1 then d.name else ” end, 表說明 = case when a.colorder=1 then isnull(f.value,”) else ” end,
PL/SQL Developer實現雙擊table表名查詢
雙擊table預設為Expand/Collapse 展開/摺疊 有時需快速檢視該表資料,如果寫select * from tab會顯得麻煩,我們可實現雙擊table來進行快速查詢方法為:Tools -&
SQL Server遍歷表的幾種方法
都是 遍歷 lec delet -s rop itl 想要 temp 在數據庫開發過程中,我們經常會碰到要遍歷數據表的情形,一提到遍歷表,我們第一印象可能就想到使用遊標,使用遊標雖然直觀易懂,但是它不符合面向集合操作的原則,而且性能也比面向集合低。當然,從面向集合操作的角
將sql Server 的table的列 ,由非自增長改為自增長
ans rop nvarchar test tablockx log tab blog lock 轉載:http://www.thinksaas.cn/topics/0/423/423869.html Demo /**************** 準備環境********
SQL Server常用系統表
data pro 根據 結果 同時 最大 sys 次數 max 1、查詢當前數據庫中的用戶表 select *from sysobjects where xtype=‘U‘; 2、獲取SQL Server允許同時用戶連接的最大數 SELECT @@MAX_CONNECTIO
SQL Server復制表結構和表數據生成新表的語句
sdn 主鍵 .net 需要 topic 外鍵 server sql 表數據 參考:http://topic.csdn.net/t/20020621/09/820025.html SELECT * INTO newTableName FROM oldT
SQL Server中多表連接時驅動順序對性能的影響
left create 現在 輸出結果 tar 表連接 邏輯 itl 信息 本文出處:http://www.cnblogs.com/wy123/p/7106861.html (保留出處並非什麽原創作品權利,本人拙作還遠遠達不到,僅僅是為了鏈接到原文,因為後續對可能存在
sql Server中臨時表與數據表的區別
tzu bio 默認 omx msu oaf sum nmp dia sql server 中臨時表與數據表的區別 1、如何判斷臨時表和數據表已生成 --如何判斷臨時表是否已創建--- if exists(select * from tempdb..sysobjects
關於oracle sql語句查詢時 表名和字段名要加雙引號的問題具體解釋
ont tin rac 作者 什麽 因此 tro 們的 reg 作為oracle的剛開始學習的人相信大家一定會遇到這個問題。如圖: 明明就是navicat可視化創建了表,但是就是不能查到!這個
SQL Server: create table sql script
gets byte msi obi xtend manage number 生成 rod ---搖獎observeh數據庫設計 Function getSpace lottery /* -- Author:geovindu 塗聚文 -- Date: 20180
Sql Server中判斷表、列不存在則創建的方法[轉]
where art number primary net index mman www tro 一、Sql Server中如何判斷表中某列是否存在 首先跟大家分享Sql Server中判斷表中某列是否存在的兩個方法,方法示例如下: 比如說要判斷表A中的字段C是否存在兩個
sql server復制表數據到另外一個表 的存儲過程
復制表 return lld charindex exists create IE cas tab if exists (select * from sysobjects where id=object_id(‘GenerateData‘) and OBJECTP
SQL Server誤刪表恢復
watermark orm rop max ack ntc 記錄 exists color SQL Server 完全恢復模式 下恢復誤刪除的表,進行 精準 恢復1. 找出被刪除的表名(無schema,能找到schema的分享下)、object_id、表所在數據庫、刪除人
SQL Server 關於 Table 字典數據的查詢SQL
一個 小數位 lse lec pes text 序號 字段 cde 分享一個關於查詢SQL Server Table 結構的SQL 語句。 T-SQL 如下: SELECT (case when a.colorder=1 then d.name else ‘‘ end) 表
提取sql語句中的表名 (python)
import ply.lex as lex, re def extract_table_name_from_sql(sql_str): # remove the /* */ comments q = re.sub(r"/\*[^*]*\*+(?:[^*/][^*]*\*+)*/
sql server 建立分割槽表
建立檔案組 alter database db_sp_360toandroid add filegroup Before201701alter database db_sp_360toandroid add filegroup userEventInfo201701alter databa
Sql Server 批量修改表名稱
declare @oldName varchar(30), @newName varchar(30) declare cursor_taname CURSOR FOR SELECT name,replace(nam