SQL Server,在 TSQL 中创建临时表时出现问题
您好,当我执行以下 TSQL 时,我收到以下错误消息。但是SQL语法没有问题吧?
create table #tb ([t1] tinyint, [t2] varchar(50))
insert into #tb values
(1, 'a'),
(2, 'b')
消息 102,级别 15,状态 1,第 3 行 “,”附近的语法不正确。
SQL 查询窗口中没有其他内容。运行 SQL Server 2005。
Hi when i execute the following TSQL, i get the error message below. But there is nothing wrong with the SQL syntax is there?
create table #tb ([t1] tinyint, [t2] varchar(50))
insert into #tb values
(1, 'a'),
(2, 'b')
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near ','.
There is nothing else in the SQL query window. Running SQL Server 2005.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
正如 jmoreno 提到的,
VALUES (), ()
语法受 SQL Server 2008+ 支持,但您将其标记为 SQL Server 2005。使用:
也可以使用 < a href="http://msdn.microsoft.com/en-us/library/ms188029.aspx" rel="noreferrer">
选择 ...
子句,但临时表不能已经存在:As jmoreno mentions, the
VALUES (), ()
syntax is SQL Server 2008+ supported but you tagged this as SQL Server 2005.Use:
It's also possible to do this in a single query, using the
SELECT ... INTO
clause, but the temp table can't already exist:试试这个:
您需要指定要插入的列。
//编辑
抱歉,SQL 2005 语法如下。它并不那么优雅。
Try this:
You need to specify the columns that you're inserting into.
//EDIT
Sorry, SQL 2005 syntax below. It's not nearly as elegant.
你说你使用的是 SQL 2005,但 VALUES (), () 语法直到 2008 年才实现。
You say you're using SQL 2005, but the VALUES (), () syntax wasn't implemented until 2008.
看起来您正在尝试插入两行,因此您需要插入第一行,然后插入第二行,而不是尝试将其全部压缩为一行:
Looks like you're trying to insert two rows, so you need to insert the first row and then the second instead of trying to squeeze it all into one:
SELECT t.field1, t.field2 INTO #myTempTable
FROM myDB.myOwner.myTable t
WHERE ...
ORDER BY t.field1, t.field2;
-- 如果您希望表是全局的,请使用##myTempTable 作为名称。
SELECT t.field1, t.field2 INTO #myTempTable
FROM myDB.myOwner.myTable t
WHERE ...
ORDER BY t.field1, t.field2;
-- use ##myTempTable as the name if you want your table to be GLOBAL.