得到某個數據庫中沒有主鍵的表


--一下腳本指定數據庫之后執行可以得到沒有主鍵的表
--SQL查找數據庫中所有沒有主鍵的數據表腳本
--運行腳本后在消息中可能會顯示下面現象中的一種:
--(1)數據庫中所有數據表都有主鍵(則證明所有數據表都有主鍵)
--(2)當前數據表[數據表名]沒有主鍵(則可方便找到沒主鍵的數據表)
declare @TableName nvarchar(250)--游標中取出的數據表名
declare @AllTableHasPrimaryKey int--是否全部都有主鍵
set @AllTableHasPrimaryKey=1
--聲明讀取數據庫所有數據表名和編號的游標
declare mycursor cursor for select name from dbo.SysObjects WHERE OBJECTPROPERTY(ID, 'IsUserTable') = 1 order by name
 --打開游標
open mycursor
--從游標里取出數據賦值到我們剛才聲明的數據表名變量中
fetch next from mycursor into @TableName
--如果游標執行成功
while (@@fetch_status=0)
begin
 --判斷當前數據表是否存在主鍵
 IF NOT EXISTS (select * from information_schema.key_column_usage where TABLE_NAME=''+@TableName+'')
 begin
 set @AllTableHasPrimaryKey=0;
 print '當前數據表['+@TableName+']沒有主鍵'
 end
 
 --用游標去取下一條記錄
    fetch next from mycursor into @TableName
end
if(@AllTableHasPrimaryKey=1)
begin
print '數據庫中所有數據表都有主鍵'
end
--關閉游標
close mycursor
--撤銷游標
deallocate mycursor
--腳本代碼結束

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM