我有一個表有50多列,但只有少數列正在使用。這意味着當任何存儲過程使用該表時,它僅在select/where語句中引用4-5列。其餘的列沒有被使用。我只想列出實際使用的那些列。一種方法是找出表的依賴關係,然後遍歷每個SP並找出哪些列正在使用。但在那種情況下,我有大約30+ Sp。有沒有有效的方法來做到這一點。找出sql服務器中的表中所有有用的列
0
A
回答
2
試試這個:
select name from syscomments c
join sysobjects o on c.id = o.id
where TEXT like '%table_name%' and TEXT like '%column_name%'
table_name中給你的表名,在列名給出了要CHCK程序dependencies.You將獲得該存儲過程的名稱作爲輸出列
+0
非常感謝。這會做。 – pKay
3
要使用多個列在一個過程中,你可以使用一個代碼像下面
create procedure sp_sample
@column_names varchar(200)
as
if @column_names='' or @column_nams is null
set @column_names='*'
exec ('select '[email protected]_name +' from table')
下面是一些例子:
exec sp_sample @columnname='id,name'
或
exec sp_sample @columnname='id,name,telphone'
0
如果您導入數據庫使用SQL Server Data Tools數據庫項目,你將能夠找到一個表或使用「查找所有引用」上下文命令列的所有引用。是什麼使得這個特別有用的是準確性:它甚至會發現SELECT *
的實例沒有明確提及該列,但隱式地參考它。它也不會被具有類似名稱的表或列混淆(發現ID
的特定實例在其他方面存在問題)。
如果你想知道某個列是否被引用,你可以簡單地刪除它,看看是否有任何「未解決的引用」錯誤出現在錯誤列表中 - 如果是的話,那麼該列在某處使用。
相關問題
- 1. 查找出現在SQL服務器中所有部門的所有用戶?
- 2. 用c#列出mysql服務器中的所有數據庫#
- 3. 列出所有賬戶中的所有AWS ECS(EC2容器)服務器
- 4. sql按服務所有者的評分數量列出服務
- 5. 列出網絡中的所有MSSQL服務器VB.NET
- 6. SQL查找表中所有列的SUM大於零的所有列的名稱
- 7. postgresql列出服務器內的所有表字段信息
- 8. 獲取系統中安裝的所有SQL服務器的列表
- 9. 如何使用T-SQL列出SQL Server中的所有表名?
- 10. 獲取SQL服務器組中可用服務器的列表
- 11. 如何迭代服務器中所有數據庫的列表?
- 12. 在AWS服務器中使用Python的所有計劃任務的列表
- 13. SQL服務器:選擇表中的所有記錄時,從三列值在
- 14. 從遠程服務器導出SQL數據庫(所有表)
- 15. 尋找所有表中的值在SQL
- 16. 在SQL Server 2008中查找對錶列的所有引用
- 17. 列出服務器上的所有文件使用C
- 18. 如何列出Oracle SQL中的架構中的所有表?
- 19. 如何使用Powershell列出服務器中使用服務帳戶運行的所有服務
- 20. 表中的SQL服務器
- 21. 如何在SQL Server中列出鏈接服務器數據庫的所有表和列名稱?
- 22. 列出SQL語句中使用的所有表格
- 23. 如何使用Squirrel SQL列出數據庫中的所有表?
- 24. 在另一個列表中查找所有列出的項目
- 25. 連接到我所有的SQL服務器時出錯
- 26. 所有可用服務器控件的列表
- 27. 找出所有的子表
- 28. 如何獲得使用python xmpppy的XMPP服務器中所有MUC的列表?
- 29. 使用C#列出所有存在於局域網中的NAS服務器
- 30. 別名所有查詢 - SQL服務器
我會在字典中尋找它,不記得...列使用(四)的東西。 – jarlh
通過表中有用的列我的意思是一些存儲過程引用這些列。如果在我的數據庫中沒有sp引用表中的特定列,那麼該列對我沒有用處。 – pKay