| 
			
			 | 
		#1 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
			
			
			Проверка уникальности ItemDimIdx в InventSum
			 
			
			День добрый! 
		
		
		
		
		
		
		
	Как написать запрос который бы проверил уникальность индекса ItemDimIdx(ItemId и InventDimId) в InventSum, т.е. вывел неуникальные коммнации? А то вылезает: ?Номенклатура 000045813 Невозможно выбрать запись в 'Запасы в наличии' ('InventSum') Номенклатура: 000045813. База данных SQL обнаружила ошибку. Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver][SQL Server]Index 'I_174ITEMDIMIDX' on table 'INVENTSUM' (specified in the FROM clause) does not exist. Оператор SQL: SELECT A.ITEMID,A.POSTEDQTY,A.POSTEDVALUE,A.DEDUCTED,A.RECEIVED,A.RESERVPHYSICAL,A.RESERVORDERED,A.ONORDER,A.ORDERED,A.QUOTATIONISSUE,A.QUOTATIONRECEIPT,A.DEL_CONFIGID,A.INVENTDIMID,A.CLOSED,A.REGISTERED,A.PICKED,A.AVAILORDERED,A.AVAILPHYSICAL,A.PHYSICALVALUE,A.ARRIVED,A.PHYSICALINVENT,A.CLOSEDQTY,A.LASTUPDDATEPHYSICAL,A.LASTUPDDATEEXPECTED,A.POSTEDVALUESECCUR_RU,A.PHYSICALVALUESECCUR_RU,A.ITEMNAME,A.RECID FROM INVENTSUM A(INDEX(I_174ITEMDIMIDX) UPDLOCK) WHERE ((DATAAREAID=?) AND ((ITEMID=?) AND (INVENTDIMID=?))) OPTION(FAST 1)  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Выполни запрос в Query Analyzer'е 
		
		
		
		
		
		
			X++: select DataAreaId, ItemId, InventDimId from InventSum group by DataAreaId, ItemId, InventDimId having count(*) > 1 
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от DreamCreator
			
			 
Index 'I_174ITEMDIMIDX' on table 'INVENTSUM' (specified in the FROM clause) does not exist 
		
	
				__________________ 
		
		
		
		
	С уважением, Игорь Ласийчук.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			а при чем тут уникальность-неуникальность, если 
		
		
		
		
		
		
			Цитата: 
	
		
			SQL ServerIndex 'I_174ITEMDIMIDX' on table 'INVENTSUM' (specified in the FROM clause) does not exist
		
	 
Вам синхронизация нужна 
				__________________ 
		
		
		
		
	-ТСЯ или -ТЬСЯ ?  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от AndyD
			
			 
Выполни запрос в Query Analyzer'е 
		
	X++: select DataAreaId, ItemId, InventDimId from InventSum group by DataAreaId, ItemId, InventDimId having count(*) > 1 Цитата: 
	
		
			Сообщение от Garic
			
			 
А при чём здесь уникальность индекса? Запустите переиндексацию таблицы 
		
	Цитата: 
	
		
			Сообщение от Vadik
			
			 
? 
		
	Вам синхронизация нужна  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от DreamCreator
			
			 
Ругается на having! ( Переменная having не объявлена.) 
		
	
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от AndyD
			
			 
В Query Analyzer'е? 
		
	Нет доступа к Query Analizer-у. Запущу из Аксапты.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуй ч/з Connection
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может пригодится.. 
		
		
		
		
		
		
		
	PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			У вас разошёлся SqlDictionary и БД. 
		
		
		
		
		
		
			Можно попробовать удалить их из таблички SQlDictionary и после етого синронизировать. Не уверен  
		
				__________________ 
		
		
		
		
	С уважением, Игорь Ласийчук.  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Исправил 11.18 
		
		
		
		
		
		
		
		
			Помогла проверка/синхронизация, InventSum после удаления записей в SQLDictionary синхронизировалась. Возвращаюсь к первой проблеме. Спасибо! ________________________________________ Уже поправил: После удаления всех полей для InventSum (TableId = 174), и попытке синхронизировать (другая база, другая апликуха, до удаления работало нормально) вылезло вот такое сообщение Синхронизация Невозможно выполнить команду языка определения данных в '' (''). База данных SQL обнаружила ошибку. Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named 'INVENTSUM' in the database. Оператор SQL: CREATE TABLE INVENTSUM (ITEMID VARCHAR(20) NOT NULL DEFAULT '' ,...,POSTEDVALUESECCUR_RU NUMERIC(28,12) NOT NULL DEFAULT 0 ,PHYSICALVALUESECCUR_RU NUMERIC(28,12) NOT NULL DEFAULT 0 ,ITEMNAME VARCHAR(100) NOT NULL DEFAULT '' ,DATAAREAID VARCHAR(3) NOT NULL DEFAULT 'dat' ,RECID INT NOT NULL CHECK (RECID <> 0) ) Ошибки во время синхронизации базы SQL со словарем данных системы. Операция закончилась неудачно. Синхронизация 1 таблиц закончилась неудачно Последний раз редактировалось DreamCreator; 06.12.2005 в 11:47.  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Упс. Я имел в виду удалить индексы оттуда. Но они оказывается не там живут. Щас покопаю. 
		
		
		
		
		
		
			Так вы удалили считайте что всю табличку и оно пытается по новой создать. 
				__________________ 
		
		
		
		
	С уважением, Игорь Ласийчук.  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Garic
			
			 
Упс. Я имел в виду удалить индексы оттуда. Но они оказывается не там живут. Щас покопаю. 
		
	Так вы удалили считайте что всю табличку и оно пытается по новой создать. Сейчас на проблемной базе поэксперементирую!  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Проделал все на проблемной базе -- SqlDictionary пересоздался, проблема с InventSum осталась... 
		
		
		
		
		
		
		
	_______________________________________________________ Может пригодится, удаление всех записей по InventSum из SQLDictionary PHP код: 
	
			
	База тестовая, поэтому restore из бэкапа рабочей может решить проблему.. но случись такое на рабочей..  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от DreamCreator
			
			 
База тестовая, поэтому restore из бэкапа рабочей может решить проблему.. но случись такое на рабочей.. 
		
	во избежание, так сказать..  
		
				__________________ 
		
		
		
		
	-ТСЯ или -ТЬСЯ ?  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			На данный момент ситуация такая 
		
		
		
		
		
		
		
	Через Enterprise Manager попытался удалить проблемный индекс - не дает т.к. primary индекс, причем через DesignTable не видно что есть primary-key. В Аксапте соответственно primary key убрал -- все равно, удалить индекс не дает. Будем восстанавливать из бэкапа! Спасибо за поддержку!  | 
| 
	
 |