SqlDataReader不更新列的值

时间:2013-05-24 15:52:37

标签: c#-4.0 ado.net sqldatareader

我有一个在SQL Server 2008上运行的存储过程,它返回所有过程及其参数的列表:

procedure [dbo].[p_ListProcedures]
as

select
  sp.name as 'Procedure',
  p.name as 'Parameter',
  t.name as 'Type',
  p.is_output as 'Output',
  dbo.GetParamDefault(p.name, object_definition(sp.object_id)) as 'Value'
from sys.procedures sp
left join sys.parameters p
  on p.object_id=sp.object_id
left join sys.types t
  on t.user_type_id=p.user_type_id
where sp.name like 'p_%'
order by sp.name

此过程在两个不同的数据库上运行,用于为我们生成一些ADO.NET代码。它在一个数据库上运行正常,但在另一个数据库上,最后一列Value总是返回第一行的值(似乎是)。

对于此输出:

  1. x,x,x,x,NULL
  2. x,x,x,x,NULL
  3. x,x,x,x,NULL
  4. x,x,x,x,NULL
  5. x,x,x,x,' test'
  6. x,x,x,x,' test'
  7. x,x,x,x,NULL
  8. x,x,x,x,NULL
  9. 通过SqlDataReader(reader["Value"])读取最后一列的值将始终返回null,因为它应该重新调整' test'对于第5行和第6行。

    我将两个数据库复制到本地SQL Server Express 2012安装,该工具运行正常。因此,远程服务器上的一个数据库有一些特点,我无法弄清楚。

    关于可能导致这种情况发生的任何想法?

0 个答案:

没有答案