• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/db/mssqlconnection.php
  • Класс: BitrixMainDBMssqlConnection
  • Вызов: MssqlConnection::createTable
public function createTable($tableName, $fields, $primary = array(), $autoincrement = array())
{
	$sql = 'CREATE TABLE '.$this->getSqlHelper()->quote($tableName).' (';
	$sqlFields = array();

	foreach ($fields as $columnName => $field)
	{
		if (!($field instanceof ScalarField))
		{
			throw new ArgumentException(sprintf(
				'Field `%s` should be an EntityScalarField instance', $columnName
			));
		}

		$realColumnName = $field->getColumnName();

		$sqlFields[] = $this->getSqlHelper()->quote($realColumnName)
			. ' ' . $this->getSqlHelper()->getColumnTypeByField($field)
			. ' NOT NULL'
			. (in_array($columnName, $autoincrement, true) ? ' IDENTITY (1, 1)' : '')
		;
	}

	$sql .= join(', ', $sqlFields);

	if (!empty($primary))
	{
		foreach ($primary as &$primaryColumn)
		{
			$realColumnName = $fields[$primaryColumn]->getColumnName();
			$primaryColumn = $this->getSqlHelper()->quote($realColumnName);
		}

		$sql .= ', PRIMARY KEY('.join(', ', $primary).')';
	}

	$sql .= ')';

	$this->query($sql);
}