求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
[解决办法]
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记录