SQL刪除資料庫中所有使用者資料表外來鍵

2021-08-27 07:08:29 字數 1600 閱讀 2119

--sql刪除資料庫中所有使用者資料表外來鍵

--查詢刪除前的當前資料庫所有約束

select * from information_schema.key_column_usage

declare @tablename nvarchar(250)

--宣告讀取資料庫所有資料表名稱游標mycursor1

declare mycursor1 cursor for select name from dbo.sysobjects where objectproperty(id, 'isusertable') = 1

--開啟游標

open mycursor1

--從游標裡取出資料賦值到我們剛才宣告的資料表名變數中

fetch next from mycursor1 into @tablename

--如果游標執行成功

while (@@fetch_status=0)

begin

--定義當前外來鍵約束變數

declare @constraintname varchar (200)

--刪除當前資料表的所有外來鍵約束

--宣告讀取資料表所有外來鍵約束名稱游標mycursor2

declare mycursor2 cursor for select name from dbo.sysobjects where xtype = 'f' and parent_obj = (select [id] from dbo.sysobjects where id = object_id(n'['+@tablename+']') and objectproperty(id, n'isusertable') = 1)

--開啟游標

open mycursor2

--從游標裡取出資料賦值到外來鍵約束名稱變數中

fetch next from mycursor2 into @constraintname

--如果游標執行成功

while (@@fetch_status=0)

begin

--刪除當前找到的外來鍵

exec ('alter table '+@tablename+' drop constraint '+@constraintname)

--print 'alter table '+@tablename+' drop constraint '+@constraintname

--用游標去取下一條記錄

fetch next from mycursor2 into @constraintname

end

--關閉游標

close mycursor2

--撤銷游標

deallocate mycursor2

--用游標去取下一條記錄

fetch next from mycursor1 into @tablename

end

--關閉游標

close mycursor1

--撤銷游標

deallocate mycursor1

--查詢刪除後的當前資料庫所有約束

select * from information_schema.key_column_usage

sql server 刪除資料庫中所有表資料

1.清空所有資料表中的記錄 exec sp msforeachtable command1 truncate table 2.刪除所有資料表 exec sp msforeachtable delete n 如果出現 資料表中有各種約束,就不能使用上面的方法來刪除資料了,只能使用以下方式 建立自定義儲...

如何刪除壞的使用者資料庫

當使用drop database無法刪除資料庫時,使用本文所示方法可以刪除。1 使用isql以sa註冊sql server 2 設定允許修改系統表 1 sp configure allow updates 1 2 go 3 把 要刪除的使用者資料庫置為 suspect 狀態 1 use master...

刪除使用者 資料庫 及表空間

gps平台 建設 軟體開發 系統運維,找森大網路科技!來自森大科技官方部落格 始 執行 cmd,然後輸入sqlplus as sysdba 連上資料庫 2 刪除使用者 在dos視窗輸入drop user eqm cascade 要打分號 3 刪除tablespace 在dos視窗輸入drop tab...