--一下腳本指定數據庫之后執行可以得到沒有主鍵的表 --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 --腳本代碼結束