यहां कुछ ऐसा है जो मैं ठीक करने में सक्षम नहीं हूं, और मैंने हर जगह देखा है। शायद यहां कोई व्यक्ति जानता होगा!टी-एसक्यूएल एक "कॉलम नाम या आपूर्ति किए गए मानों की संख्या को फायरिंग से मेल नहीं खाता है" त्रुटि
मेरे पास dandb_raw नामक एक सारणी है, जिसमें विशेष रूप से तीन कॉलम हैं: dunsId (PK), name, और searchName।
insert into [dandb_raw](dunsId, name)
select 3442355, 'harper'
union all
select 34425355, 'har 466per'
update [dandb_raw] set name ='grap6767e'
इस त्रुटि के साथ:
Msg 213, Level 16, State 1, Procedure companies_contactInfo_updateTerritories, Line 20
Insert Error: Column name or number of supplied values does not match table definition.
इस बारे में सबसे उत्सुक बात है
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dandb_raw_searchNames]
ON [dandb_raw]
FOR INSERT, UPDATE
AS
SET NOCOUNT ON
select dunsId, name into #magic from inserted
UPDATE dandb
SET dandb.searchName = company_generateSearchName(dandb.name)
FROM (select dunsId, name from #magic) i
INNER JOIN dandb_raw dandb
on i.dunsId = dandb.dunsId
--Add new search matches
SELECT c.companyId, dandb.dunsId
INTO #newMatches
FROM dandb_raw dandb
INNER JOIN (select dunsId, name from #magic) a
on a.dunsId = dandb.dunsId
INNER JOIN companies c
ON dandb.searchName = c.searchBrand
--avoid url matches that are potentially wrong
AND (lower(dandb.url) = lower(c.url)
OR dandb.url = ''
OR c.url = ''
OR c.url is null)
INSERT INTO #newMatches (companyId, dunsId)
SELECT c.companyId, max(dandb.dunsId) dunsId
FROM dandb_raw dandb
INNER JOIN
(
select
case when charindex('/',url) <> 0 then left(url, charindex('/',url)-1)
else url
end urlMatch, * from companies
) c
ON dandb.url = c.urlMatch
where subsidiaryOf = 1 and isReported = 1 and dandb.url <> ''
and c.companyId not in (select companyId from #newMatches)
group by companyId
having count(dandb.dunsId) = 1
UPDATE cd
SET cd.dunsId = nm.dunsId
FROM companies_dandb cd
INNER JOIN #newMatches nm
ON cd.companyId = nm.companyId
GO
ट्रिगर आवेषण विफल कारण बनता है: मैं भी एक ट्रिगर है कि इस मेज पर कार्य करता है है कि ट्रिगर में व्यक्तिगत विवरणों में से प्रत्येक अपने आप पर काम करता है। यह लगभग उतना ही है जैसा कि डाला गया एक-ऑफ टेबल है जो अस्थायी तालिकाओं को संक्रमित करता है यदि आप उनमें से किसी एक में डालने की कोशिश करते हैं।
तो ट्रिगर विफल होने का क्या कारण बनता है? इसे कैसे रोका जा सकता है?
नेस्टेड ट्रिगर्स में प्रत्येक की अपनी डाली गई जादू तालिका होती है। –