日期:2014-05-19  浏览次数:20634 次

【SQL 语句问题】判断一行,如不存在则插入,MSSQL里面可以用一个语句完成么?
MySQL里面有   replace   into   这个语句,就是完成这个功能的,MSSQL里面有类似的语句吗?
如果不支持,用存储过程来做应该效率高一点吧,怎么写呢?
多谢!

------解决方案--------------------
create proc sp_test
as


if not exists (select * from 表名 where id=100)

insert into 表名(id) select 100

go
------解决方案--------------------
如果是多条操作性SQL语句,需要使用事务保证数据处理的完整性。

如:


create proc sp_test
as


set xact_abort on


begin tran

if not exists (select * from 表名 where id=100)

insert into 表名(id) select 100


if not exists (select * from 表名 where id=200)

insert into 表名(id) select 200

commit tran

go
------解决方案--------------------
if not exists (select * from 表名 where id=100)

insert into 表名(id)
else

update ........


只要在插入之前做个判断就可以了。。看看是否有记录。。
------解决方案--------------------
可以在存储过程中,也可以直接在查询分析器中执行。

是可以直接执行的SQL语句。
------解决方案--------------------
報的什麼錯誤?

試下這個


Create Table TEST(ID Int, Name Varchar(10))
If Not Exists (Select ID From TEST Where ID = 1)
Insert TEST Values(1, 'A ')