根据来自单个表的信息从数据库构建tsql insert语句

时间:2014-11-25 17:28:47

标签: c# sql-server database visual-studio-2012 sql-insert

假设我有以下数据库/表(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必须能够实现这一点。

1 个答案:

答案 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'