0

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

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

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

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

59,
22,

..ETC

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

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

  1. 我的 SQL Server 代理可能有什么问题?
  2. 无论问题是什么,为什么我没有收到任何错误消息?

提前感谢任何想法/建议!

4

2 回答 2

1

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

    SELECT *
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = <userTableName>

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

于 2021-02-23T21:30:18.390 回答
0

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

模型为我返回 0。

于 2010-11-11T18:49:16.463 回答