*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
Util_ColumnSearch
By Jesse Roberge - YeshuaAgapao@Yahoo.com
Update - Fixed existance check for drop
Searches for columns with names containing @Colname that belong to tables with names containing @TableName (optional) or schemas with names containing @SchemaName (optional). Gives size and rowcount for tables.
LIKE wildcards are not automatic, which allows for easy 'begins with', 'ends with', and 'equal to' queries.
Requires the VIEW DATABASE STATE database permission.
Update 2009-01-14:
Fixed Rows Output - Was being erroneously multiplied by (1+#NonClusteredIndexes)
SUM(Rows) Should be SUM(CASE WHEN index_id BETWEEN 0 AND 1 THEN row_count ELSE 0 END)
Update 2009-09-21:
Fixed column_id sorting, now sorts correctly as an int rather than a (converted) string
Added searching of system tables
Update 2009-10-01:
Fixed system object searching (sys.columns is also split-in-two; DMV / Catelog views do not have sys.dm_db_partition_stats entries)
Added optional output of non-materialized virtual table objects
Size output columns will be NULL for these.
All system catelog views and DMVs are non-materialized.
Required Input Parameters
@ColumnName sysname Filters columns. Can use LIKE wildcards.
Optional Input Parameters
@SchemaName sysname='' Filters schemas. Can use LIKE wildcards. All schemas if blank.
@TableName sysname='' Filters tables. Can use LIKE wildcards. All tables if blank.
@VirtualTables TinyInt=0 Search virutal tables (views, table-valued functions) - Size output will be NULL for these
@UserOjbects TinyInt=1 Search user objects
@SystemObjects TinyInt=0 Search system objects
@Sort TinyInt=1 1=sort by SchemaName, TableName, ColumnID; 2=sort by SchemaName, TableName, ColumnName
Usage
EXECUTE Util_ColumnSearch '%price%'
EXECUTE Util_ColumnSearch @SchemaName='dbo', @Tablename='cart%', @Columnname='%price%'
Copyright:
Licensed under the L-GPL - a weak copyleft license - you are permitted to use this as a component of a proprietary database and call this from proprietary software.
Copyleft lets you do anything you want except plagarize, conceal the source, proprietarize modifications, or prohibit copying & re-distribution of this script/proc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
see <http://www.fsf.org/licensing/licenses/lgpl.html> for the license text.
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=