10

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

メッセージ102、レベル15、状態1、行10

'、'の近くの誤った構文

このフィドルなしで実行されます#署名し、テーブル名が#Namesしかし、テーブルから*を選択しようとすると、次のようなメッセージが表示されます。

無効なオブジェクト名 '#NAMES':SELECT * FROM #NAMES

SQL Server 2012は複数の挿入をサポートしていますか?


更新:SSMS 2012の2005サーバーにアクセスしているようです。

SELECT @@VERSION --Returns: Microsoft SQL Server 2005


  • はい、SQL Server2012年複数の挿入物をサポート - Mgmt Studio 2012があるかどうか私は疑問に思います2005年instance - どのバージョンから入手できますかSELECT @@VERSION? - marc_s
  • それはまさにそれです。 SQL Server 2005に接続しています - KyleMit

2 답변


8

はい、SQL Server2012年複数の挿入をサポート - この機能はSQL Serverで導入されました2008年

それはあなたがManagement Studio 2012を持っているかどうか私は疑問に思うが、あなたは本当にSQL Serverに接続されている2005年インスタンス...

SQL Serverのバージョンエンジンから来ますかSELECT @@VERSION


8

SQLFiddleを使用するときは、区切り文字がGOに設定されていることを確認してください。また、スキーマ構築スクリプトは実行スクリプトとは異なる接続で実行されるため、一方で作成された一時テーブルはもう一方からは見えません。このフィドルは、コードが有効でSQL 2012で機能していることを示しています。

SQLフィドル

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


  • それでは、なぜSSMSで機能しないのでしょうか。他の人が問題をもっと簡単に再現できるように、私はフィドルを入れるだけです。 - KyleMit
  • 私の更新を見てください。私が考えることができる唯一のことはあなたが2005年の実例につながっているということです。 - Sebastian Meine

リンクされた質問


関連する質問

最近の質問