我正在研究一个由独立软件供应商开发的C#代码和SQL2008数据库,并试图优化代码。
有一张桌子的no非常高。许多列,其中许多显然不是必需的。我想知道这个表的哪些列被其他表、存储过程、视图或函数引用,这样我就可以删除不需要的列。
我不是SQL2008方面的专家,所以如果有任何内置的工具或查询,我将不胜感激。
使用View Dependencies,我只能找出哪些其他对象引用了这个表,但它不能告诉这个表中哪些列被其他对象引用。
发布于 2013-03-30 19:45:12
选择表名称,然后按ALT+ F1,它将为您提供引用SQL Server中其他表和视图的列的详细信息。
此外,您可以使用以下关键字查询需要在@Keyword变量中写入所需的列名,然后以下查询将为您提供关键字为used.This的所有对象详细信息,这将帮助您。
set nocount on
declare @Keyword as varchar(200)
set @Keyword = 'Column name'
SELECT DISTINCT
name,
CASE o.xtype
WHEN 'S' THEN 'System Stored Proc'
WHEN 'F' THEN 'Foreign Key'
WHEN 'U' THEN 'Table'
WHEN 'V' THEN 'View'
WHEN 'P' THEN 'Stored Proc'
WHEN 'PK' THEN 'Primary Key'
WHEN 'TR' THEN 'Trigger'
WHEN 'UQ' THEN 'Unique Index'
WHEN 'D' THEN 'Default'
WHEN 'FN' THEN 'User Defined Function'
ELSE 'Unknown'
END,
text
FROM
sysobjects o left join syscomments c ON c.id = o.id
WHERE
text LIKE '%' + @Keyword + '%'
OR name LIKE '%' + @Keyword + '%'
https://stackoverflow.com/questions/15717048
复制相似问题