给定一个#,我如何发现可以在哪个表和列中找到它?
我不在乎它是否很快,它只需要工作即可。
这是来自上面链接的Stored Proc-我所做的唯一更改是用temp表替换了一个表变量,因此您不必记住每次都将其删除。
CREATE PROC SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN
-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Tested on: SQL Server 7.0 and SQL Server 2000
-- Date modified: 28th July 2002 22:50 GMT
DECLARE @Results TABLE(ColumnName nvarchar(370), ColumnValue nvarchar(3630))
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO @Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END
SELECT ColumnName, ColumnValue FROM @Results
END
问题内容: 我有一个网站,使用数据库提供的地址将位置存储在MySQL数据库和GeoCode中。 现在,我想添加一个功能,该功能将找到最接近指定点的位置,例如他们现在站立或输入的位置。我使用JavaScript和jQuery对地址解析器和Google地图进行编码,然后使用PHP从数据库中获取结果。 我读过有关的信息,但是我无法弄清楚在需要显示自己的数据库位置而不是Google的数据库位置的情况下它将
问题内容: 因此,我正在编写一个从redis读取的节点应用程序,我想执行某种查询,该查询返回有人知道怎么做的数据库数量。 因此,现在基本上我所拥有的是一种获取数据库中所有密钥的方法,但是我希望级别更高,我想遍历所有数据库然后获取所有密钥。这是用于获取当前数据库的所有密钥的代码。 问题答案: 解决方案1 正如@carebdayrvis所提到的,您可以使用command获取数据库信息,并解析该信息以获
问题内容: 如何找到重复的行?如果last_name是重复字段,我想显示 任何数据库都可以,最好是oracle。 问题答案: 假设您的服务器具有GROUP_CONCAT,因为您没有提及正在使用的服务器:
我有一个连接到Sybase ASE的PB应用程序;有没有一种方法可以在应用程序运行时跟踪DB调用。我以前在Oracle10/11G中经常这样做,但在sybase ase中无法理解。如果我能在PB应用程序中运行一个模块并检查之后执行的查询,那将非常有帮助。我使用的是DBVisualizer或RapidSQL。
问题内容: 我想返回此表中的所有内容+一列,该列表示是否在其他任何地方将记录作为外键引用。 IE: 我要退货: “引用”是指是否在数据库的任何其他表中将特定的Animal_Id作为外键引用了。我想我首先可以查询information_schema并找出哪些表包含此外键,然后使用循环和动态sql执行 有人有摘录该怎么做吗? 问题答案: 这应该做到这一点: 如果您不了解所有FK表,则可以使用系统元数据
问题内容: 有什么命令可以从所有数据库中找到某个表吗?因为我忘了桌子在哪里。谢谢。 问题答案: 使用特定于MySQL的: …或使用ANSI标准INFORMATION_SCHEMA.TABLES: