sql-server – 如何在SQL Server中编写foreach?
发布时间:2021-01-20 18:14:59 所属栏目:MsSql教程 来源:网络整理
导读:我试图在for-each中实现某些东西,我想在其中获取返回的select语句的ID并使用它们中的每一个. DECLARE @i intDECLARE @PractitionerId intDECLARE @numrows intDECLARE @Practitioner TABLE ( idx smallint Primary Key IDENTITY(1,1),PractitionerId int)INSE
我试图在for-each中实现某些东西,我想在其中获取返回的select语句的ID并使用它们中的每一个. DECLARE @i int DECLARE @PractitionerId int DECLARE @numrows int DECLARE @Practitioner TABLE ( idx smallint Primary Key IDENTITY(1,1),PractitionerId int ) INSERT @Practitioner SELECT distinct PractitionerId FROM Practitioner SET @i = 1 SET @numrows = (SELECT COUNT(*) FROM Practitioner) IF @numrows > 0 WHILE (@i <= (SELECT MAX(idx) FROM Practitioner)) BEGIN SET @PractitionerId = (SELECT PractitionerId FROM @Practitioner WHERE idx = @i) --Do something with Id here PRINT @PractitionerId SET @i = @i + 1 END 目前我有一些看起来像上面的东西,但我得到错误:
可能有人 解决方法你似乎想要使用CURSOR.虽然大多数情况下最好使用基于集合的解决方案,但有时候CURSOR是最佳解决方案.在不了解您的真实问题的情况下,我们无法帮助您:DECLARE @PractitionerId int DECLARE MY_CURSOR CURSOR LOCAL STATIC READ_ONLY FORWARD_ONLY FOR SELECT DISTINCT PractitionerId FROM Practitioner OPEN MY_CURSOR FETCH NEXT FROM MY_CURSOR INTO @PractitionerId WHILE @@FETCH_STATUS = 0 BEGIN --Do something with Id here PRINT @PractitionerId FETCH NEXT FROM MY_CURSOR INTO @PractitionerId END CLOSE MY_CURSOR DEALLOCATE MY_CURSOR (编辑:鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何为下面给出的查询编写等效的SQL case语句?
- sql-server – 哪些表设计更适合性能?
- 如何通过组策略将域用户设置为本地管理员账户
- VMware安装或卸载提示the msi failed的解决方法
- Windows Server 2008 R2配置IIS7.5+PHP Manager+PHP5.3+Mys
- 微软通过“智能云”战略实现差异化竞争
- sql-server – WHERE中条件和条件顺序的逻辑运算符OR AND
- sql-server-2008 – 使用PIVOT SQL Server 2008时更改列名
- 明亮画面梦幻虚化 618大光圈定焦镜头推荐
- SQL Server和Oracle的EF和TransactionScope没有升级/跨越到