SELECT TOP 1 @TempID1 = [clubId] FROM [dbo].[scbm_Clubs]
WHERE [clubLv]=@ClubLv AND [leagueMatchesWin]<10 AND [isCpu]=0 AND [isArrangeFixture] = 0 AND [hostVisitingLs]=0 ORDER BY newid();UPDATE [dbo].[scbm_Clubs]
SET [isArrangeFixture] = 1
WHERE [clubId] = @tepID1 OR [clubId] = @tempID2;以上是循环语句为什么对[isArrangeFixture]置位后仍然可以选出 @TempID1??
郁闷 希望大家帮忙 看看什么问题? 在线等
WHERE [clubLv]=@ClubLv AND [leagueMatchesWin]<10 AND [isCpu]=0 AND [isArrangeFixture] = 0 AND [hostVisitingLs]=0 ORDER BY newid();UPDATE [dbo].[scbm_Clubs]
SET [isArrangeFixture] = 1
WHERE [clubId] = @tepID1 OR [clubId] = @tempID2;以上是循环语句为什么对[isArrangeFixture]置位后仍然可以选出 @TempID1??
郁闷 希望大家帮忙 看看什么问题? 在线等
解决方案 »
- sqlserver 2008中datetime类型的字段毫秒只能精确到3位吗?
- 设计一个网上论文评价系统:一篇论文需要很多人来评价,一个人要评价很多文章,需要建几张表效率比较高?数据表间的逻辑如何?怎样连结传递数据?
- 本机连接sqlserver2005的连接串?
- 大家帮我看看,在VB中如何得到这个存储过程的返回记录集!!!
- 不用游标是否可行,请高手
- 自己创建的存储过程莫名奇妙的没了。
- select * from tbill where 1=1 这个where 1=1到底有什么意义?
- 客户端从一应用程序输入数据到SQL中后,怎么让SQL数据库自动刷新,而能显示输入的数据?
- 如何在SQL Server2000中配置邮件服务器?
- 请问如何把SQL server中的对象与数据倒入Oracle中?有工具吗?还是要自己写?
- 更新怎么成插入了
- 保存小数的问题
2 把clubId相加,在分别查分,作为条件
DECLARE @TempID2 int;
WHILE (EXISTS(SELECT COUNT(*) FROM [dbo].[scbm_Clubs] WHERE [clubLv]=@ClubLv AND [leagueMatchesWin]<10 AND [isCpu]=0 AND [isArrangeFixture] = 0))
BEGIN SELECT TOP 1 @TempID1 = [clubId] FROM [dbo].[scbm_Clubs]
WHERE [clubLv]=@ClubLv AND [leagueMatchesWin]<10 AND [isCpu]=0 AND [isArrangeFixture] = 0 AND [hostVisitingLs]=0 ORDER BY newid();SELECT TOP 1 @TempID2 = [clubId] FROM [dbo].[scbm_Clubs]
WHERE [clubLv]=@ClubLv AND [leagueMatchesWin]<10 AND [isCpu]=0 AND [isArrangeFixture] = 0 AND [clubId]<> @TempID1 AND [hostVisitingLs]=1 ORDER BY newid();
......
UPDATE [dbo].[scbm_Clubs]
SET [isArrangeFixture] = 1
WHERE [clubId] = @TempID1 OR [clubId] = @TempID12;
END修改成这样还是会出错 每次@TempID2有变化 在循环几次后表里还有符合条件的数据不@TempID1不在没有变化了
貌似不需要循环就可以解决吧,declare @ClubLv nvarchar(20)
set @ClubLv ='xxxx'
UPDATE [dbo].[scbm_Clubs]
SET [isArrangeFixture] = 1
WHERE [clubLv]=@ClubLv AND [leagueMatchesWin] <10 AND [isCpu]=0 AND [isArrangeFixture] = 0 AND
( [hostVisitingLs]=0 or [hostVisitingLs]=1 )
go为啥要非要用循环啦?
第二句改一下试试:SELECT TOP 1 @TempID2 = [clubId] FROM [dbo].[scbm_Clubs]
WHERE [clubLv]=@ClubLv AND [leagueMatchesWin] <10 AND [isCpu]=0 AND [isArrangeFixture] = 0 AND [clubId] <> isnull(@TempID1,0) AND [hostVisitingLs]=1 ORDER BY newid();