この質問にはすでに答えがあります。
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年複数の挿入をサポート - この機能はSQL Serverで導入されました2008年。
それはあなたがManagement Studio 2012を持っているかどうか私は疑問に思うが、あなたは本当にSQL Serverに接続されている2005年インスタンス...
SQL Serverのバージョンエンジンから来ますかSELECT @@VERSION
?
SQLFiddleを使用するときは、区切り文字がGOに設定されていることを確認してください。また、スキーマ構築スクリプトは実行スクリプトとは異なる接続で実行されるため、一方で作成された一時テーブルはもう一方からは見えません。このフィドルは、コードが有効でSQL 2012で機能していることを示しています。
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のスクリーンショットです。
SELECT @@VERSION
? - marc_s