我知道字段内容,并不知道字段名,如何在数据库中快速找到或查询出所在的表?SQL SERVER 2000。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我知道字段内容,并不知道字段名,如何在数据库中快速找到或查询出所在的表?SQL SERVER 2000。相关的知识,希望对你有一定的参考价值。

很急

不知道所在表,只有内容基本通过普通查找方式来处理基本不靠谱
建议采用另外的方式
SQL Server 有个工具叫做事件探查器
位置和企业管理器在同级目录下
打开之后,建立连接,输入你要跟踪的数据库连接
在应用程序中同样的位置输入内容
可以在事件探查器中看到运行事件的记录
可以通过这里来定位数据所存于的表名
不过这个办法基本对于少数几个客户端来连接时有效
太多了产生的记录就更多
很难找了
参考技术A 哥们儿,你这个有点儿难啊,确实没有什么好方法,只知道字段内容基本想找到所在表,基本无从下手啊。。。只有用工具把数据库表里内容导出来,然后CTRL+F找了。。追问

我已经把200张表看了一遍了。

如何获取数据库中表名、字段名、字段属性信息?

如题我需要获取表名,字段名,字段属性(类型,文字长度,备注)信息,用代码如何获取?
下面的答案有点看不懂 不知道那些是关键字 哪些是通配符

如果是db2 的表名:
list tables
得到每一个表的详细信息字段名,字段属性(类型,文字长度,备注)
describe table 具体的表名

平时我就这么获得这些信息
参考技术A 获取当前数据库表名:
select name from sysobjects where xtype='U'and name<>'dtproperties'

获取当前表的字段名及属性:
select a.name, b.xtype,b.name
from syscolumns a
inner JOIN systypes b
ON a.xtype=b.xusertype
inner join sysobjects c ON
a.id=c.id AND c.xtype='U' AND c.name<>'dtproperties' where c.name = 表名

或:

SELECT
表名 = CASE a.colorder WHEN 1 THEN c.name ELSE '' END,
序 = a.colorder,
字段名 = a.name,
标识 = CASE COLUMNPROPERTY(a.id,a.name,'IsIdentity') WHEN 1 THEN '√' ELSE '' END,
主键 = CASE
WHEN EXISTS (
SELECT *
FROM sysobjects
WHERE xtype='PK' AND name IN (
SELECT name
FROM sysindexes
WHERE id=a.id AND indid IN (
SELECT indid
FROM sysindexkeys
WHERE id=a.id AND colid IN (
SELECT colid
FROM syscolumns
WHERE id=a.id AND name=a.name
)
)
)
)
THEN '√'
ELSE ''
END,
类型 = b.name,
字节数 = a.length,
长度 = COLUMNPROPERTY(a.id,a.name,'Precision'),
小数 = CASE ISNULL(COLUMNPROPERTY(a.id,a.name,'Scale'),0)
WHEN 0 THEN ''
ELSE CAST(COLUMNPROPERTY(a.id,a.name,'Scale') AS VARCHAR)
END,
允许空 = CASE a.isnullable WHEN 1 THEN '√' ELSE '' END,
默认值 = ISNULL(d.[text],''),
说明 = ISNULL(e.[value],'')
FROM syscolumns a
LEFT JOIN systypes b ON a.xtype=b.xusertype
INNER JOIN sysobjects c ON a.id=c.id AND c.xtype='U' AND c.name<>'dtproperties'
LEFT JOIN syscomments d ON a.cdefault=d.id
LEFT JOIN sysproperties e ON a.id=e.id AND a.colid=e.smallid
ORDER BY c.name, a.colorder
参考技术B 我找到并在ACCESS里测试通过了:
在ACCESS里,备注类型用Memo表示,所以改变字段的数据类型为备注的SQL为:
ALTER TABLE user ALTER COLUMN userinfo Memo
对了,如果user表有外键,而且你要修改的字段就是外键的话,你就不能修改啦!
下面给出修改为其它类型的SQL(表为tb,字段为aa):
ALTER TABLE tb ALTER COLUMN aa Byte 数字[字节]
ALTER TABLE tb ALTER COLUMN aa Long 数字[长整型]
ALTER TABLE tb ALTER COLUMN aa Short 数字[整型]
ALTER TABLE tb ALTER COLUMN aa Single 数字[单精度
ALTER TABLE tb ALTER COLUMN aa Double 数字[双精度]
ALTER TABLE tb ALTER COLUMN aa Currency 货币
ALTER TABLE tb ALTER COLUMN aa Char 文本
ALTER TABLE tb ALTER COLUMN aa Text(n) 文本,其中n表示字段大小
ALTER TABLE tb ALTER COLUMN aa Binary 二进制
ALTER TABLE tb ALTER COLUMN aa Counter 自动编号
ALTER TABLE tb ALTER COLUMN aa Memo 备注
ALTER TABLE tb ALTER COLUMN aa Time 日期/时间

无聊~~

参考资料:http://zhidao.baidu.com/question/4030560.html

以上是关于我知道字段内容,并不知道字段名,如何在数据库中快速找到或查询出所在的表?SQL SERVER 2000。的主要内容,如果未能解决你的问题,请参考以下文章

abap中怎么快速的查找一个结构中的字段,有没啥通用的方法?

如何获取数据库中表名、字段名、字段属性信息?

不知道数据在sql server哪一个表内,如何查询。

MySQL存储的字段是不区分大小写的,你知道吗?

SQL中只知道字段名,要查在哪张表怎么查啊

oracle中已经知道一个具体值,如何根据该值查询出含有该值的表名和列名?