-1
我有一個博客網站,後端有SQL Server 2012。我正在構建移動應用程序,並希望將博客直接發佈到後端。如何查找SQL Server 2012中數據庫表之間的依賴關係
我可以將INSERT
張貼到主表中,但帖子未顯示在網站上。
我懷疑有一個或多個表包含構成博客帖子的其他數據,但我無法找到它們。
是否有任何有效的方法來找到額外的相關表?數據庫中是否存在「隱藏」字段或表?
我有一個博客網站,後端有SQL Server 2012。我正在構建移動應用程序,並希望將博客直接發佈到後端。如何查找SQL Server 2012中數據庫表之間的依賴關係
我可以將INSERT
張貼到主表中,但帖子未顯示在網站上。
我懷疑有一個或多個表包含構成博客帖子的其他數據,但我無法找到它們。
是否有任何有效的方法來找到額外的相關表?數據庫中是否存在「隱藏」字段或表?
第一個查詢將爲您提供您的表引用的表的列表,第二個查詢將爲您提供引用您的表的表的列表。這隻有在表格之間建立了引用完整性時纔有效。
DECLARE @TableName VARCHAR(MAX) = 'myTable',
@SchemaName VARCHAR(MAX) = 'dbo'
SELECT DISTINCT
s.name AS SchemaName,
o2.name AS TableName
FROM sys.foreign_keys fk
JOIN sys.objects o
ON fk.parent_object_id = o.object_id
JOIN sys.schemas s
ON o.schema_id = s.schema_id
JOIN sys.objects o2
ON fk.referenced_object_id = o2.object_id
JOIN sys.schemas s2
ON o2.schema_id = s2.schema_id
WHERE o.name = @TableName
AND s.name = @SchemaName
ORDER BY SchemaName,
TableName
SELECT DISTINCT
s.name SchemaName,
o.name TableName
FROM sys.foreign_keys fk
JOIN sys.objects o
ON fk.parent_object_id = o.object_id
JOIN sys.schemas s
ON o.schema_id = s.schema_id
JOIN sys.objects o2
ON fk.referenced_object_id = o2.object_id
JOIN sys.schemas s2
ON o2.schema_id = s2.schema_id
WHERE o2.name = @TableName
AND s2.name = @SchemaName
ORDER BY SchemaName,
TableName
嗨Phritzy,非常感謝!不幸的是,我已經找到了相關表格。我認爲我的記錄肯定有問題......我會繼續調查......非常感謝! –
找出你的查詢出了什麼問題,而不是依賴關係。如果依賴關係出錯,您可能無法插入行。 – DavidG
@DavidG除非當然沒有在數據庫上正確設置RI,在這種情況下,這是一種通過所有表格進行拖網的情況,試圖找出它。 –
作爲第一步,我正在從SQL查詢設計器中執行INSERT ...我將插入記錄與網站上正確顯示的記錄進行了比較,唯一的區別是POSTID,即標識字段。我似乎無法找到任何其他包含該POSTID的表。 –