我只是陷入了这个问题,不幸的是,即使在谷歌上搜索也找不到任何东西......
我在SQL Server 2005数据库上运行以下查询:
select @TableCount = count(distinct table_name)
from information_schema.columns
我在不同的数据库中获得了@TableCount的不同结果,例如:
59,
22,
...等
但是当我让我的SQL Server代理在同一个数据库上运行相同的查询时,他总是得到0(零)作为结果。即没有例外,没有错误信息表明他的访问权限有问题 - 结果只是一个0(零)。
如果您有任何想法,请提供帮助:
提前了解任何想法/建议!!!
答案 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 权限,然后同一查询返回行。