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

INSERT INTO Statement only for those who don't have already an entry

我有 2 个表:cSc_UserClassSettingscSc_User

我想 INSERT 来自 cSc_UsercSc_UserClassSettings 中的所有用户使用此 INSERT 语句:

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
)

但它 returns 0 个值。 我有什么解决办法吗?

提前致谢。

如果你想从 cSC_User table 插入记录到 cSc_UserClassSettings 但那些还没有在 cSc_UserClassSettings 中,那么你可以试试这个 Select查询

SELECT
        0
       ,0
       ,getdate()
       ,NULL
       ,camosGUID
       ,NULL
       ,NEWID()
       ,camosGUID
       ,'cQ_RootOffer_C'
       ,0
       ,0
       ,0
       ,0
FROM [cSc_User] 
WHERE cSC_User.camosGUID NOT IN (
                      Select UserGUID
                      From cSc_UserClassSettings
                      )