В SQL Server, как я могу вставить данные в таблицу, которая имеет только один столбец, который имеет тип идентификации? - PullRequest
3 голосов
/ 09 июня 2010

В SQL Server, как я могу вставить данные в таблицу, которая имеет только один столбец, который имеет тип идентификации? Например, вставить в следующую таблицу t . Как я могу написать оператор вставки?

CREATE TABLE t
(
    id INT IDENTITY(1, 1) PRIMARY KEY
)

Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 09 июня 2010

Для вставки одного значения

INSERT T DEFAULT VALUES 

Или для вставки нескольких строк в SQL Server 2008 +

MERGE INTO t
USING (SELECT TOP 100 *
       FROM master..spt_values) T
ON 1 = 0
WHEN NOT MATCHED THEN
  INSERT
  DEFAULT VALUES; 

Для вставки нескольких строк в одну инструкцию в предыдущих версиях потребуетсязначения должны быть введены явно, например, как показано ниже.

SET IDENTITY_INSERT t ON

INSERT INTO t
            (id)
SELECT TOP 100  
               (SELECT ISNULL(MAX(id), 0) FROM   t (TABLOCKX)) + 
                            ROW_NUMBER() OVER (ORDER BY @@SPID)
FROM   master.dbo.spt_values

SET IDENTITY_INSERT t OFF 
2 голосов
/ 09 июня 2010

Если вы хотите продолжить вставку значений идентификаторов, используйте

INSERT YourTable DEFAULT VALUES;

Если вы хотите вставить явные значения, вы можете написать

SET IDENTITY_INSERT YourTable ON
INSERT INTO YourTable (id) VALUES (5);
SET IDENTITY_INSERT YourTable OFF
0 голосов
/ 09 июня 2010

Попробуйте: -

INSERT INTO t Values(NULL)
...