sql-server – 如何在SQL Server中编写foreach?
发布时间:2021-01-19 10:53:39 所属栏目: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-server – 在表上插入,删除和更新的SQL Server触发器
- sql-server – 在Sql Server中,有没有办法检查选定的一组行
- 更新触发器后的SQL Server
- sql – 触发以防止插入两列的重复数据
- sql-server – 如果我选择超过15个字段,我会遇到灾难性的失
- sql-server-2008 – 我可以运行SQL维护计划随时重建索引吗?
- SQL Group和Sum By Month – 默认为零
- sql-server – 增量更新后统计信息消失
- sql-server-2005 – 永久删除表时回收SQL Server 2005数据库
- 搜索 – 像关系数据库一样使用Lucene
站长推荐
热点阅读

