预计我不太了解SQL:我有一个名为" MY_TABLE"我想将此表中包含的所有字段名称检索到列表中。 通过网络浏览我发现了这段代码:
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'MY_TABLE'
这对我来说非常简单,我期望的是一个列表,例如:
FIELD_1
FIELD_2
...
FIELD_n
但是当我尝试将此查询执行到我的查询分析器时,我收到以下错误消息:
>[Error] Script lines: 1-3 --------------------------
information_schema.columns not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
Msg: 208, Level: 16, State: 1
Server: JUMBO, Line: 1
有任何帮助吗?
答案 0 :(得分:0)
非常简单。您可以在错误本身中看到架构作为查询中使用的列的别名是错误的。请再次检查架构名称。其他可能性是正确检查列名称,重要的是对架构的检查权限是否有权在该架构中执行查询(R / W / X)。
答案 1 :(得分:0)
我想这可能取决于您使用的Sybase版本,但根据ASE 12.5的Sybase文档,您可能希望使用的系统表是:
sysobjects为每个表,视图,存储过程包含一行, 扩展存储过程,日志,规则,默认,触发,检查 约束,引用约束和(仅在tempdb中)临时 对象
syscolumns为每个表和视图中的每一列包含一行, 并且过程中的每个参数都有一行。
您想要的查询可能就是:
select c.name from syscolumns c
inner join sysobjects o on c.id = o.id
where o.name = 'MY_TABLE'