3
A
回答
2
下面的查询或修改tehreof会做 - 在SQL Server 还可以提供目录和架构信息
select tab1.TABLE_NAME from
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS as ref inner join
INFORMATION_SCHEMA.TABLE_CONSTRAINTS as prim
on ref.UNIQUE_CONSTRAINT_NAME=prim.CONSTRAINT_NAME
and ref.UNIQUE_CONSTRAINT_CATALOG=prim.CONSTRAINT_CATALOG
and ref.UNIQUE_CONSTRAINT_SCHEMA=prim.CONSTRAINT_SCHEMA
--and prim.CONSTRAINT_TYPE in('PRIMARY KEY','UNIQUE')
inner join INFORMATION_SCHEMA.TABLE_CONSTRAINTS tab1 on
ref.CONSTRAINT_NAME=tab1.CONSTRAINT_NAME
and ref.CONSTRAINT_CATALOG=tab1.CONSTRAINT_CATALOG
and ref.CONSTRAINT_SCHEMA=tab1.CONSTRAINT_SCHEMA
where prim.TABLE_NAME='YourTablename'
0
看一看元数据:
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
0
SELECT DISTINCT
ParentSchema.name ParentSchema
,ParentTable.name ParentTable
,ChildSchema.name ChildSchema
,ChildTable.name ChildTable
FROM sys.foreign_keys Foreign_Keys
JOIN sys.objects ParentTable ON Foreign_Keys.parent_object_id = ParentTable.object_id
JOIN sys.schemas ParentSchema ON ParentTable.schema_id = ParentSchema.schema_id
JOIN sys.objects ChildTable ON Foreign_Keys.referenced_object_id = ChildTable.object_id
JOIN sys.schemas ChildSchema ON ChildTable.schema_id = ChildSchema.schema_id
WHERE ParentSchema.name = '??????'
AND ParentTable.name = '??????'
2
我前段时间有类似的问题。以下是我使用Sql Server SMO编写的脚本:
public static string GetForeignKeyScript()
{
SqlConnection conn = new System.Data.SqlClient.SqlConnection("SOME_CONNECTION_STRING");
Server server = new Server(new ServerConnection(conn));
Database db = server.Databases["SOME_DATABASE"];
Table Roles = db.Tables["SOME_TABLE"];
var sb = new StringBuilder();
foreach (Table table in db.Tables)
foreach (ForeignKey fk in table.ForeignKeys)
foreach (string s in fk.Script())
sb.AppendLine(s);
return sb.ToString();
}
这将输出一个包含用于创建外键的脚本的字符串。
编辑代码以删除相当特定于我的项目的内容(例如,我只对以某个字符串结尾的表感兴趣)
相关问题
- 1. 查找所有具有外键的表
- 2. 如何在oracle中查找所有外键约束?
- 3. 如何从给定子键查找数组的所有父键?
- 4. 如何为Django中的所有记录执行反向外键查找?
- 5. 如何查找所有没有自动增量的主键
- 6. PostgreSQL:如何索引所有外键?
- 7. 如何替换所有外键?
- 8. 查找关系的所有候选键
- 9. 如何查找哪些表在我的表上有外键?
- 10. django反向外键查找
- 11. Django反向查找外键
- 12. 查找外键列顺序
- 13. Django推迟外键查找
- 14. 反向外键查找
- 15. 如何查找hadoop数据集中所有键的组合?
- 16. 如何使用jq查找某个键的所有路径
- 17. SQL当外键2出现在第二个表中时,查找具有外键1的所有行
- 18. 在嵌套字典中查找键的所有键和键
- 19. 如何删除主键除单键查询外的所有索引
- 20. 如何查找表A的主键具有外键约束的表的列表?
- 21. 如何查找所有图形卡? C#
- 22. 如何通过PHP查找所有URL?
- 23. 如何查找所有依赖dll
- 24. 如何查找所有auto_increment表
- 25. IMAP:如何查找所有草稿
- 26. 如何查找所有子进程?
- 27. 如何使用token_get_all查找所有T_INLINE_HTML?
- 28. 找到所有关键字
- 29. 从table1中查找table2中有零行的外键链接到的外键
- 30. 查找与Oracle SET约束所有的外键错误的递延