相关疑难解决方法(0)

如何在另一个存储过程中迭代存储过程结果....没有游标?

我不确定这是否是我应该在T-SQL中做的事情,我很确定在这个上下文中使用'iterate'这个词是错误的,因为你不应该在sql中迭代任何东西.它应该是基于集合的操作,对吗?无论如何,这是场景:

我有一个存储过程返回许多uniqueidentifiers(单列结果).这些ID是另一个表中记录的主键.我需要在该表中的所有相应记录上设置一个标志.

如何在不使用游标的情况下执行此操作?对你来说应该是一个简单的sql大师!

sql t-sql sql-server sql-server-2005

7
推荐指数
1
解决办法
9413
查看次数

如何在不需要分布式事务的情况下存储存储过程的结果?

我有一个正在运行的远程存储过程:

EXECUTE Contoso.Frob.dbo.Grobber @StartDate='20140513', @EndDate='20140518'
Run Code Online (Sandbox Code Playgroud)

并且此远程存储过程返回行集:

EmployeeID  EmployeeName    StartDateTime            EndDateTime
----------  --------------  -------------            -----------------------
619         Guyer, Kirsten  2014-05-13 19:00:00.000  2014-05-13 19:00:00.000
...
Run Code Online (Sandbox Code Playgroud)

优秀.完善.好.甜.

现在我有这些结果,我需要将它们存储在一个表中.任何一种表.我不在乎什么样的表:

  • 物理表
  • 临时表
  • 全球临时表
  • 表变量

我只需要存储它们以便我可以处理它们.问题是,当我尝试将结果插入表中时,是否为:

SQL Server 坚持(不,要求)它开始分布式事务:

用于链接服务器"Contoso"的OLE DB提供程序"SQLNCLI10"返回消息"伙伴事务管理器已禁用其对远程/网络事务的支持.".
消息7391,级别16,状态2,行41
无法执行操作,因为链接服务器"Contoso"的OLE DB提供程序"SQLNCLI10"无法启动分布式事务.

为什么不......

现在,无法对Contoso服务器进行更改.为什么?无所谓.假装杰克鲍尔将出庭并关注任何试图修改Contoso的人.这意味着我无法启用或重新配置MSDTC \\Contoso. …

sql-server sql-server-2008-r2

5
推荐指数
1
解决办法
1274
查看次数