2017-07-05 21 views
1

sys.dm_exec_describe_first_result_set_for_object函数接受一个对象(例如存储过程)并确定第一个结果集的属性。SQL Server如何确定存储过程对“只读”应用程序意图是否有效?

是否有类似的功能,可以告诉我,如果一个程序是“只读”,这可能表明,它可以正确地与连接字符串中ApplicationIntent=readonly使用吗?

+1

AFAIK,no。考虑proc可能包含动态SQL或嵌套,这是确定proc是否实际更改数据的一个挑战。 –

+0

@DanGuzman,我在想,如果SQL Server知道什么时候在辅助只读服务器上运行一个proc是安全的,它可能会以某种方式向客户端展示这些信息。如果'applicationintent'只是一个提示,那么我想知道为什么我不想把它放在每个连接字符串上,希望服务器将只读调用放在辅助节点上。 – JoeGaggler

回答

0

有趣的问题。 SQL Server不会将对象标记为只读,即设置为用户权限级别。 ApplicationIntent = readonly似乎是在处理运行可用性组的情况,并且通常只有用于报告的只读副本。然后它将路由到该服务器。

Read Only Application Intent