Вставка нескольких строк в таблицу Temp с SQL Server 2012

Эти вопросы StackOverflow здесь, здесь и здесь все говорят то же самое, но я не могу заставить его работать в SSMS или SQLFiddle

CREATE TABLE #Names
  ( 
    Name1 VARCHAR(100),
    Name2 VARCHAR(100)
  ) 

INSERT INTO #Names
  (Name1, Name2)
VALUES
  ('Matt', 'Matthew'),
  ('Matt', 'Marshal'),
  ('Matt', 'Mattison')

Когда я выполняю это SSMS, вставку не удается со следующим сообщением в первой строке после VALUES

Msg 102, уровень 15, состояние 1, строка 10
Неверный синтаксис рядом с ','.

Этот Fiddle работает без знака #, и схема успешно выполняется, когда имя таблицы #Names, но я получаю следующее сообщение, когда пытаюсь выбрать * из таблицы

Недопустимое имя объекта '#NAMES': SELECT * FROM #NAMES

Поддерживает ли SQL Server 2012 несколько вставок?

UPDATE Извините, я. SQL-новичок, не понимая, что SSMS 2012 будет ограничен любым сервером, на котором я нахожусь

SELECT @@VERSION
--Returns: Microsoft SQL Server 2005 - 9.00.5057.00 (X64) 
--Mar 25 2011 13:33:31 
--Copyright (c) 1988-2005 Microsoft Corporation
--Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
+8
01 авг. '13 в 20:36
источник поделиться
2 ответа

Да, SQL Server 2012 поддерживает несколько вложений - эта функция была введена в SQL Server 2008.

Это заставляет меня задаться вопросом, есть ли у вас Management Studio 2012, но вы действительно подключены к экземпляру SQL Server 2005...

Какую версию SQL Server двигатель вы получаете от SELECT @@VERSION??

+6
01 авг. '13 в 20:46
источник

При использовании SQLFiddle убедитесь, что для разделителя установлено значение GO. Также построение схемы script выполняется в другом соединении из run script, поэтому временная таблица, созданная в одном, не отображается в другом. Эта скрипта показывает, что ваш код действителен и работает в SQL 2012:

SQL Fiddle

Настройка схемы MS SQL Server 2012:

Запрос 1:

CREATE TABLE #Names
  ( 
    Name1 VARCHAR(100),
    Name2 VARCHAR(100)
  ) 

INSERT INTO #Names
  (Name1, Name2)
VALUES
  ('Matt', 'Matthew'),
  ('Matt', 'Marshal'),
  ('Matt', 'Mattison')

SELECT * FROM #NAMES

Результаты:

| NAME1 |    NAME2 |
--------------------
|  Matt |  Matthew |
|  Matt |  Marshal |
|  Matt | Mattison |

Вот скриншот SSMS 2012: enter image description here

+6
01 авг. '13 в 20:42
источник

Связанные вопросы


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

Посмотрите другие вопросы по меткам или Задайте вопрос