information_schema.columns返回0行到我的SQL Server代理

时间:2010-11-11 18:45:56

标签: sql-server sql-server-agent information-schema

我只是陷入了这个问题,不幸的是,即使在谷歌上搜索也找不到任何东西......

我在SQL Server 2005数据库上运行以下查询:

select @TableCount = count(distinct table_name) 
from information_schema.columns

我在不同的数据库中获得了@TableCount的不同结果,例如:

59,
22,

...等

但是当我让我的SQL Server代理在同一个数据库上运行相同的查询时,他总是得到0(零)作为结果。即没有例外,没有错误信息表明他的访问权限有问题 - 结果只是一个0(零)。

如果您有任何想法,请提供帮助:

  1. 我的SQL Server代理有什么问题?
  2. 无论出现什么问题,我都没有收到任何错误消息?
  3. 提前了解任何想法/建议!!!

2 个答案:

答案 0 :(得分:0)

您将哪个数据库设置为默认值?

模型为我返回0。

答案 1 :(得分:0)

我确信十年后对@Gustin 没有帮助,但其他人可能会遇到这个问题。问题可能是对用户表的权限。 参考:关于 COLUMNS (Transact-SQL) https://docs.microsoft.com/en-us/sql/relational-databases/system-information-schema-views/columns-transact-sql?view=sql-server-ver15 的 Microsoft 文档 “为当前数据库中当前用户可以访问的每一列返回一行。” 我通过创建一个新表进行了验证,确认用户从

获得了 0 行
    SELECT *
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = <userTableName>

授予用户 SELECT 权限,然后同一查询返回行。