IF EXISTS, THEN SELECT ELSE INSERT AND THEN SELECT

前端 未结 7 913
旧时难觅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:58

    DECLARE @t1 TABLE (
        TableID     int         IDENTITY,
        FieldValue  varchar(20)
    )
    
    --<< No empty string
    IF EXISTS (
        SELECT *
        FROM @t1
        WHERE FieldValue = ''
    ) BEGIN
        SELECT TableID
        FROM @t1
        WHERE FieldValue=''
    END
    ELSE BEGIN
        INSERT INTO @t1 (FieldValue) VALUES ('')
        SELECT SCOPE_IDENTITY() AS TableID
    END
    
    --<< A record with an empty string already exists
    IF EXISTS (
        SELECT *
        FROM @t1
        WHERE FieldValue = ''
    ) BEGIN
        SELECT TableID
        FROM @t1
        WHERE FieldValue=''
    END
    ELSE BEGIN
        INSERT INTO @t1 (FieldValue) VALUES ('')
        SELECT SCOPE_IDENTITY() AS TableID
    END
    

提交回复
热议问题