簡體   English   中英

SQL Server 2005 中的臨時表創建問題

[英]Temporary Table creation Issue in SQL Server 2005

當我創建並將值插入臨時表時,我在 SQL Server 2005 數據庫中收到此錯誤。

消息 102,第 15 級,State 1,第 5 行
',' 附近的語法不正確

但是當我在 SQL Server 2008 及更高版本中運行確切的代碼時,我可以成功創建行。

OLDER VERSION 有限制嗎? 還是只是一些設置問題?

這些是我的代碼作為示例

create table #CustCodesMapping 
(
     NewCustCode varchar(30), 
     OldCustCode varchar(30) collate database_default
)

insert into #CustCodesMapping
values ('11111', 'aaaaa'), ('22222', 'bbbbb'), ('33333', 'ccccc')

但是當我只添加一個值時,它可以工作

create table #CustCodesMapping 
(
     NewCustCode varchar(30), 
     OldCustCode varchar(30) collate database_default
)

insert into #CustCodesMapping
values ('11111', 'aaaaa')

重申我的評論:

為什么你還在用 SQL Server 2005,已經完全不支持 5~ 年了; 很久以前就升級了。

至於問題,還是因為您使用的是 SQL 服務器的過時版本。 SQL Server 2008 中引入了允許多行的VALUES (這也是完全不支持的)。 您必須在 2005 年使用非常古老的方法:

CREATE TABLE #CustCodesMapping (NewCustCode varchar(30),
                                OldCustCode varchar(30) COLLATE DATABASE_DEFAULT);
INSERT INTO #CustCodesMapping (NewCustCode,OldCustCode)
SELECT '11111',
       'aaaaa'
UNION ALL
SELECT '22222',
       'bbbbb'
UNION ALL
SELECT '33333',
       'ccccc';

真正的解決方案是升級到受支持的版本。 不幸的是,當您使用 2005 時,這意味着 2 次升級。 2005 -> 2012 -> 支持的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM