读书人

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

发布时间: 2012-10-10 13:58:11 作者: rapoo

求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记录 

读书人网 >VB Dotnet

热点推荐