Как увеличить (или резерв) значение ИДЕНТИФИКАЦИОННЫХ ДАННЫХ в SQL Server, не вставляя в таблицу

Другие ответы уже показывают проблему, но я хотел бы отметить, что, используя синтаксис VLA, можно передать фактический размер массива функции. Также стоит отметить, что циклы могут быть ограничены только одной половиной «матрицы»:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

bool is_symmetric(size_t n, int matrix[n][n])
{
  for(size_t i = 0; i < n; ++i) {
    for(size_t j = 0; j < i; ++j) {
      //              ^^^^^
      if (matrix[i][j] != matrix[j][i]) {
        return false;
      }
    }
  }
  return true;
}

int main(void) {
  int  square_matrix[][4] = {
     {1,2,3,4}
    ,{2,2,5,6}
    ,{3,5,3,7}
    ,{4,6,7,4}
  };

  if( is_symmetric(4, square_matrix) ) {
    puts("The matrix is symmetric");
  } else {
    puts("The matrix is not symmetric");
  }
  return 0;
}
5
задан dmajkic 26 January 2009 в 19:11
поделиться

7 ответов

Эта ситуация сделает Вашу полную структуру данных очень трудно для понимания. Если нет отношений между значениями, то повредите отношения.

Существуют способы обойти это, чтобы сделать то, что Вы ищете, но обычно это находится в распределенной среде и не сделано из-за того, что, кажется, изменение модели данных.

6
ответ дан 18 December 2019 в 10:49
поделиться

Затем не больше непосредственные отношения.

Просто повредите ограничение PK.

4
ответ дан 18 December 2019 в 10:49
поделиться

Используйте a DBCC CHECKIDENT оператор.

3
ответ дан 18 December 2019 в 10:49
поделиться

Эта статья от SQL Server Books Online обсуждает использование метода DBCC CHECKIDENT для обновления семени идентификационных данных таблицы.

От той статьи:

Этот пример вызывает текущее значение идентификационных данных в таблице заданий к значению 30.

USE pubs
GO
DBCC CHECKIDENT (jobs, RESEED, 30)
GO
3
ответ дан 18 December 2019 в 10:49
поделиться

Я изучил бы OUTPUT INTO функция, если Вы используете SQL Server 2005 или больше. Это позволило бы Вам вставлять в Вашу первичную таблицу и брать идентификаторы, присвоенные в то время создать строки во вторичной таблице.

Я предполагаю, что существует осуществленное ограничение внешнего ключа - потому что это было бы единственной причиной, необходимо будет сделать это во-первых.

0
ответ дан 18 December 2019 в 10:49
поделиться

Как Вы планируете подхождение их позже? Я не поместил бы записи во вторую таблицу без записи в первом, именно поэтому она настраивается в отношениях внешнего ключа - к stio такое действие. Почему Вы не хотите вставлять записи в первую таблицу так или иначе? Если мы знали больше о типе приложения и почему это необходимо, мы смогли вести Вас к решению.

0
ответ дан 18 December 2019 в 10:49
поделиться

это могло бы помочь

НАБОР IDENTITY_INSERT [database_name. [schema_name].] таблица {НА | ПРОЧЬ}

http://msdn.microsoft.com/en-us/library/aa259221 (SQL.80) .aspx

Это позволяет явным значениям быть вставленными в столбец идентификационных данных таблицы.

0
ответ дан 18 December 2019 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: