• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/location/import/import.php
  • Класс: BitrixSaleLocationImportImportProcess
  • Вызов: ImportProcess::checkIndexExistsByName
protected function checkIndexExistsByName($indexName, $tableName)
{
	$indexName = $this->dbHelper->forSql(trim($indexName));
	$tableName = $this->dbHelper->forSql(trim($tableName));

	if(!strlen($indexName) || !strlen($tableName))
		return false;

	if($this->dbConnType == self::DB_TYPE_MYSQL)
		$res = $this->dbConnection->query("show index from ".$tableName);
	elseif($this->dbConnType == self::DB_TYPE_ORACLE)
		$res = $this->dbConnection->query("SELECT INDEX_NAME as Key_name FROM USER_IND_COLUMNS WHERE TABLE_NAME = '".ToUpper($tableName)."'");
	elseif($this->dbConnType == self::DB_TYPE_MSSQL)
	{
		$res = $this->dbConnection->query("SELECT si.name Key_name
			FROM sysindexkeys s
				INNER JOIN syscolumns c ON s.id = c.id AND s.colid = c.colid
				INNER JOIN sysobjects o ON s.id = o.Id AND o.xtype = 'U'
				LEFT JOIN sysindexes si ON si.indid = s.indid AND si.id = s.id
			WHERE o.name = '".ToUpper($tableName)."'");
	}

	while($item = $res->fetch())
	{
		if($item['Key_name'] == $indexName || $item['KEY_NAME'] == $indexName)
			return true;
	}

	return false;
}