INSERT INTO语句仅适用于那些还没有条目的人

时间:2015-04-22 13:52:15

标签: sql insert exists

我有2个表:cSc_UserClassSettingscSc_User

我希望使用INSERT语句cSc_UserClassSettings cSc_User INSERT中的所有用户{/ 1}}:

INSERT INTO [cSc_UserClassSettings]
       ([RSRC]
       ,[Deleted]
       ,[DateNew]
       ,[DateChanged]
       ,[UserNew]
       ,[UserChanged]
       ,[camosGUID]
       ,[UserGUID]
       ,[ClassName]
       ,[WriteByOpen]
       ,[DefaultReadAccess]
       ,[DefaultWriteAccess]
       ,[Summary])
SELECT
        0
       ,0
       ,getdate()
       ,NULL
       ,camosGUID
       ,NULL
       ,NEWID()
       ,camosGUID
       ,'cQ_RootOffer_C'
       ,0
       ,0
       ,0
       ,0
FROM [cSc_User]

但是有些用户已经在cSc_UserClassSetting中有一个条目,对于那些不应该输入的用户。

如果有必要,cSc_UserClassSettings在cSc_User上有cSC_UserClassSettings.UserGUID = cSC_User.camosGUID

的外键

我试过这个:

INSERT INTO [cSc_UserClassSettings]
       ([RSRC]
       ,[Deleted]
       ,[DateNew]
       ,[DateChanged]
       ,[UserNew]
       ,[UserChanged]
       ,[camosGUID]
       ,[UserGUID]
       ,[ClassName]
       ,[WriteByOpen]
       ,[DefaultReadAccess]
       ,[DefaultWriteAccess]
       ,[Summary])
SELECT
        0
       ,0
       ,getdate()
       ,NULL
       ,camosGUID
       ,NULL
       ,NEWID()
       ,camosGUID
       ,'cQ_RootOffer_C'
       ,0
       ,0
       ,0
       ,0
FROM [cSc_User]
WHERE NOT EXISTS(
select *
from cSc_UserClassSettings
where classname = 'cQ_RootOffer_C' and deleted = 0
)

但它返回0值。 我有什么想法可以解决这个问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您想在aps_production表中cSc_UserClassSettings插入记录,但这些记录不在cSC_User中,那么您可以尝试此选择查询

cSc_UserClassSettings
相关问题