首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

求SQL语句:怎么自动选择delete,update,insert

2012-10-10 
求SQL语句:如何自动选择delete,update,insert?请各位指点!假如“表一”中没有数据就insert假如“表一”中只有

求SQL语句:如何自动选择delete,update,insert?
请各位指点!
假如“表一”中没有数据就insert
假如“表一”中只有一行就update
假如“表一”中超过一行就delete,只剩最小id这行,然后再update。

[解决办法]
原样照写,放在一个大字符串里就可以了。整个我写的那一大段可以用Command.ExecuteNonQuery 当作一句SQL来执行。

当然前提是你是用的MS SQL SERVER数据库

刚刚发现后面的几句漏掉了@, 现在补上

Declare @RowCount
Select @RowCount=Count(1) from 表一
if @RowCount=0 
Begin
Insert into 表一
End
Else Begin
if @RowCount=1 
Begin
Update 表一
End
Else Begin
Delete from 表一 where id>(select min(id) from 表一)
Update 表一
End
End
[解决办法]

SQL code
DECLARE @t TABLE(id int);--如果没有数据IF (SELECT COUNT(1) FROM @t)<1   INSERT INTO @t    SELECT 1--如果只有一行数据ELSE IF (SELECT COUNT(1) FROM @t)=1   UPDATE @t  SET id=1  WHERE id=(SELECT MIN(id) FROM @t) --查询出最小的id记录--如果超过一行,保留最小id的数据记录,其余的全部删除ELSE IF (SELECT COUNT(1) FROM @t)>1  DELETE FROM @t  WHERE id<> (SELECT MIN(id) FROM @t) --查询出最小的id记录 

热点排行