对于某些存储过程,CommandBehavior.SchemaOnly失败

问题描述:

使用IDbCommand.ExecuteReader(SchemaOnly)进行ADO.NET调用以运行存储过程,如果存储过程使用临时表,则会引发异常。唯一的例外是“Invalid object name '#tempPCBBHolidays'."(这是表的名称)。对于某些存储过程,CommandBehavior.SchemaOnly失败

所以......

是使用CommandBehavior.SchemaOnly一个坏主意,存储过程?如果是这样,当我需要的是我应该使用CommandBehavior.SingleRow元数据而不是?

或者我应该把调用放在try/catch中,并且只在异常处切换到SingleRow?(这是用于SQL工具的,因此我不知道存储过程将被调用。)

或者还有其他方法更好吗?

谢谢 - dave

According to the MSDN forum,这是Sql Server的一个已知问题。解决方案是再次调用请求SingleRow。