- Модуль: 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);
}