SQL Server:如何一次执行两个操作?

时间:2014-09-08 08:59:10

标签: sql sql-server

if (SELECT * FROM SDOPTTABLE WHERE OPTTABLENO = '324' AND OPTTABLEVAL = '00883578') = null
    insert into SDOPTTABLE(comp_cd, opttableno, opttableval, optname, dt_stamp) 
    values ('1','324','00883578','STOCKROOM ATTENDANT',getdate())

SELECT * FROM SDOPTTABLE WHERE OPTTABLENO = '324' AND OPTTABLEVAL = '00883578'
else
    (SELECT * FROM SDOPTTABLE WHERE OPTTABLENO = '324' AND OPTTABLEVAL = '00883578')

我想验证并且已经插入了不存在的数据输入后,再次从“SDOPTTABLE”表中“选择”。

任何人都可以告诉我这样做的正确方法吗?感谢。


我的代码

INSERT  INTO HCSERVREC (COMP_CD, JOBTL_CD, JOBGD_CD)
select               '1', ( if NOT EXISTS(
    SELECT 1
    FROM SDOPTTABLE
    WHERE OPTTABLENO = '324'
        AND OPTTABLEVAL = '00883578'
    )
BEGIN
INSERT INTO SDOPTTABLE (
    comp_cd
    ,opttableno
    ,opttableval
    ,optname
    ,dt_stamp
    )
VALUES (
    '1'
    ,'324'
    ,'00883578'
    ,'STOCKROOM ATTENDANT'
    ,getdate()
    )
END

SELECT *
FROM SDOPTTABLE
WHERE OPTTABLENO = '324'
AND OPTTABLEVAL = '00883578'), '[$9]'
你能指出错误的地方吗?

1 个答案:

答案 0 :(得分:2)

试试这个

IF NOT EXISTS (
        SELECT 1
        FROM SDOPTTABLE
        WHERE OPTTABLENO = '324'
            AND OPTTABLEVAL = '00883578'
        )
BEGIN
    INSERT INTO SDOPTTABLE (
        comp_cd
        ,opttableno
        ,opttableval
        ,optname
        ,dt_stamp
        )
    VALUES (
        '1'
        ,'324'
        ,'00883578'
        ,'STOCKROOM ATTENDANT'
        ,getdate()
        )
END

SELECT *
FROM SDOPTTABLE
WHERE OPTTABLENO = '324'
    AND OPTTABLEVAL = '00883578'