在所有数据库表中查找特定的行数据?不创建过程或表

Sew*_*der 6 sql t-sql database sql-server

这是我到目前为止找到超过100行的所有表:

SELECT sc.name +'.'+ ta.name TableName
 ,SUM(pa.rows) RowCnt
 FROM sys.tables ta
 INNER JOIN sys.partitions pa
 ON pa.OBJECT_ID = ta.OBJECT_ID
 INNER JOIN sys.schemas sc
 ON ta.schema_id = sc.schema_id
 WHERE ta.is_ms_shipped = 0 AND pa.index_id IN (1,0) AND pa.rows >100 
 GROUP BY sc.name,ta.name,pa.rows
 ORDER BY TABLENAME
Run Code Online (Sandbox Code Playgroud)

是否有类似的东西,我可以通过数据库找出表中的列的特定行数据?

例如:其中c.name = GUITARS和GUTARS ='Fender'

编辑:我没有CREATE PROCEDURE权限或CREATE TABLE

只查找某个列名下的任何特定数据,如果它返回很多行并不重要.

Tim*_*ner 1

请参阅我对如何在 SQL Server 数据库中的任何位置查找值?我在其中提供了一个脚本来搜索数据库中的所有表。

对此的伪代码描述是select * from * where any like 'foo'

它还允许您使用标准语法搜索特定的列名称like,例如%guitar%搜索包含单词“guitar”的列名称。

它是临时运行的,因此您不必创建存储过程,但您确实需要访问 information_schema。

我在 SQL 2000 及更高版本的数据库开发工作中几乎每天都使用这个脚本。

  • 你一定有[很多吉他](http://www.imdb.com/title/tt0084503/quotes?item=qt0239707)。 (2认同)