如何獲取SQLSERVER所有表的外來鍵關係引數

2021-07-11 03:50:37 字數 1296 閱讀 4162

select 主表名=object_name(b.rkeyid)

,主鍵列id=b.rkey

,主鍵列名=(select name from syscolumns where colid=b.rkey and id=b.rkeyid)

,外來鍵表id=b.fkeyid

,外來鍵表名稱=object_name(b.fkeyid)

,外來鍵列id=b.fkey

,外來鍵列名=(select name from syscolumns where colid=b.fkey and id=b.fkeyid)

,級聯更新=objectproperty(a.id,'cnstisupdatecascade')

,級聯刪除=objectproperty(a.id,'cnstisdeletecascade')

from sysobjects a

join sysforeignkeys b on a.id=b.constid

join sysobjects c on a.parent_obj=c.id

where a.xtype='f' and c.xtype='u'

要看指定表的話,就用下面的**:

select 主鍵列id=b.rkey 

,主鍵列名=(select name from syscolumns where colid=b.rkey and id=b.rkeyid)

,外來鍵表id=b.fkeyid

,外來鍵表名稱=object_name(b.fkeyid)

,外來鍵列id=b.fkey

,外來鍵列名=(select name from syscolumns where colid=b.fkey and id=b.fkeyid)

,級聯更新=objectproperty(a.id,'cnstisupdatecascade')

,級聯刪除=objectproperty(a.id,'cnstisdeletecascade')

from sysobjects a

join sysforeignkeys b on a.id=b.constid

join sysobjects c on a.parent_obj=c.id

where a.xtype='f' and c.xtype='u'

and object_name(b.rkeyid)='tb'

也可以用系統的儲存過程:

查主鍵:sp_pkeys '表名'

查外健:sp_fkeys '表名'

如何更改SQL Server物件所有者

執行這個語句,就可以把當前庫的所有表的所有者改為dbo exec sp msforeachtable sp changeobjectowner dbo 如果是要使用者表 儲存過程 檢視 觸發器 自定義函式一齊改,則用游標 不要理會錯誤提示 declare tb cursor local for se...

C 獲取所有SQL Server的資料庫例項名稱

獲取指定ip位址的資料庫所有資料庫例項名。指定的 ip 位址。登入資料庫的使用者名稱。登陸資料庫的密碼。返回包含資料例項名的列表。private arraylist getalldatabase string ip,string username,string password initial ca...

C 獲取所有SQL Server資料庫名稱的方法

連線到master庫中,執行 select name from master.sysdatabases sp helpdb也可以列出資料名,但不是全部,sp helpdb是會根據當前使用者角色找出相應的資料庫,而用sysdatabases表則只要有許可權訪問該錶就能查出所有資料庫資訊。預設情況下,s...