SQL-批量插入到无重复项中
我有一个触发器,当数据插入到表中时触发。插入到所述表中的数据取自JSON,JSON工作正常。我的问题是,我想将此表中的数据分离到单独的表中。我想把这些国家储存在它们自己的桌子上。它正在提取数据,但正在插入重复数据。如何从存储中消除重复项SQL-批量插入到无重复项中,sql,sql-server,Sql,Sql Server,我有一个触发器,当数据插入到表中时触发。插入到所述表中的数据取自JSON,JSON工作正常。我的问题是,我想将此表中的数据分离到单独的表中。我想把这些国家储存在它们自己的桌子上。它正在提取数据,但正在插入重复数据。如何从存储中消除重复项 CREATE TRIGGER main.afterParsing ON main.jsontable AFTER INSERT AS BEGIN --Rows DECLARE @Count INT; SET @Count = @@ROW
CREATE TRIGGER main.afterParsing
ON main.jsontable
AFTER INSERT
AS
BEGIN
--Rows
DECLARE @Count INT;
SET @Count = @@ROWCOUNT;
--Person Variables
DECLARE @PersonName NVARCHAR(50)
DECLARE @PersonSurname NVARCHAR(50)
DECLARE @PersonEmail NVARCHAR(50)
DECLARE @PersonAge NVARCHAR(50)
DECLARE @PersonCountry NVARCHAR(50)
DECLARE @PersonRegistered NVARCHAR(50)
--Insert Country
INSERT INTO country(countryName)
SELECT jsontable.country
FROM jsontable
WHERE NOT EXISTS ((SELECT countryName
FROM country
WHERE country.countryName = jsontable.country))
AND (jsontable.country IS NOT NULL)
--Get Person
--Insert Person
END;
通过简单地将SELECT语句修改为SELECT DISTINCT就解决了我的小问题。根据语法,我推测这是SQL Server,但您应该准确地标记自己的问题。您应该调查合并。到目前为止,我在查询中没有发现任何问题。唯一的可能是将where子句替换为以下方式S-Get Country SELECT@CountryCountry=jsontable.Country FROM inserted jsontable;如果不存在,请从LTRIMRTRIMCountryName所在的国家/地区选择CountryName=LTRIMRTRIM@CountryCountryBEGIN-Insert Country Insert INTO COUNTRYNAME VALUES@CountryCountry END当没有使用这些变量时,所有变量声明的含义是什么?您也不需要插入引用。我对你现在的陈述感到困惑。声明将在声明中进一步使用,但我想在继续之前修正第一部分。还有为什么我需要插入参考?参考我以前的答案