假设我有以下数据库/表(Fk表示所述表的外键):
Table: Brand
Table: Customer (Primary Key {CustomerId}) [Fk Brand]
Table: Address [Fk Region] [Fk Customer]
Table: Region
如果我有一个“CustomerId”并且可以直接访问数据库,有没有办法在不知道任何其他表的情况下循环访问数据库,除了我的“CustomerId”存在于哪个表中?
我想以正确的顺序生成sql insert语句,以重新创建整个客户结构,以便任何对客户有Fk的东西以及客户拥有Fk的任何东西也将被重新创建。< / p>
我很好,有人只是给我一个关于“如何”类似的东西的链接。我想要这个的原因是因为我经常在工作中得到一个请求“x客户有问题”,有时候没有将确切的数据输入测试数据库,几乎不可能弄明白,因为你不想触摸生产中的数据。因此,如果我可以运行一个能够在生产中构建客户的程序,它将使我的生活更加轻松。
我确信在数据库中使用C#和/或Stored Sprocs必须能够实现这一点。
答案 0 :(得分:0)
您可以使用以下内容获取对引用列的所有表的引用:
SELECT
ST.Name AS TableName
,SC.name AS ColumnName
FROM
sys.columns AS SC
INNER JOIN sys.tables AS ST
ON SC.Object_ID = ST.Object_Id
WHERE
ST.Type = 'U'
AND
SC.name = 'CustomerId'