IF EXISTS, THEN SELECT ELSE INSERT AND THEN SELECT

前端 未结 7 922
旧时难觅i
旧时难觅i 2020-12-12 21:10

How do you say the following in Microsoft SQL Server 2005:

IF EXISTS (SELECT * FROM Table WHERE FieldValue=\'\') THEN
   SELECT TableID FROM Table WHERE Fiel         


        
7条回答
  •  青春惊慌失措
    2020-12-12 21:41

    You just have to change the structure of the if...else..endif somewhat:

    if exists(select * from Table where FieldValue='') then begin
      select TableID from Table where FieldValue=''
    end else begin
      insert into Table (FieldValue) values ('')
      select TableID from Table where TableID = scope_identity()
    end
    

    You could also do:

    if not exists(select * from Table where FieldValue='') then begin
      insert into Table (FieldValue) values ('')
    end
    select TableID from Table where FieldValue=''
    

    Or:

    if exists(select * from Table where FieldValue='') then begin
      select TableID from Table where FieldValue=''
    end else begin
      insert into Table (FieldValue) values ('')
      select scope_identity() as TableID
    end
    

提交回复
热议问题