Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 插入临时表时出错_Sql Server 2008 - Fatal编程技术网

Sql server 2008 插入临时表时出错

Sql server 2008 插入临时表时出错,sql-server-2008,Sql Server 2008,我有一个查询,但我得到一个错误: 查询: INSERT #tableN (ID,NAME,Value) SELECT 1 , 'subject', SUM(subject), 2, 'age', SUM(age), 3, 'sex', SUM(sex), 4, 'test_time', SUM(test_time) FROM taleParker 我得到以下错误: 味精203,16级,状态2,第61行 “插入表格”的名称 ID、名称、值选择1,“主题”, 苏美尔

我有一个查询,但我得到一个错误:

查询:

INSERT #tableN (ID,NAME,Value) 
  SELECT 1 , 'subject', SUM(subject), 2, 'age', SUM(age), 
         3, 'sex', SUM(sex), 4, 'test_time', SUM(test_time) 
  FROM taleParker
我得到以下错误:

味精203,16级,状态2,第61行 “插入表格”的名称 ID、名称、值选择1,“主题”, 苏美尔,2,“年龄”,苏美尔,3, “性”,萨姆塞克斯,4,“测试时间”, SUMtest_time'不是有效的 标识符


您的临时表有三列,但您要插入的选择还有更多

您需要将其分解为多个插入:

更新:在SQL Server 2008中,您可以:

INSERT #tableN (ID,NAME,Value) 
   VALUES(1, 'subject', 1), (2, 'age', 42), (3, 'sex', 'M') .....
但是,您必须使用固定值,而不是选择表达式

更新2:如果你想使用总和。。。值,则必须首先将这些值放入变量中:

DECLARE @SumSubj INT, @SumAge INT, @SumSex INT, @SumTest INT

SELECT @SumSubj = SUM(subject), @SumAge = SUM(age),
       @SumSex = SUM(sex), @SumTest = SUM(test_time)
FROM taleParker

INSERT #tableN (ID,NAME,Value) 
   VALUES(1, 'subject', @SumSubj), (2, 'age', @SumAge), (3, 'sex', @SumSex) .....

您的临时表有三列,但您要插入的选择还有更多

您需要将其分解为多个插入:

更新:在SQL Server 2008中,您可以:

INSERT #tableN (ID,NAME,Value) 
   VALUES(1, 'subject', 1), (2, 'age', 42), (3, 'sex', 'M') .....
但是,您必须使用固定值,而不是选择表达式

更新2:如果你想使用总和。。。值,则必须首先将这些值放入变量中:

DECLARE @SumSubj INT, @SumAge INT, @SumSex INT, @SumTest INT

SELECT @SumSubj = SUM(subject), @SumAge = SUM(age),
       @SumSex = SUM(sex), @SumTest = SUM(test_time)
FROM taleParker

INSERT #tableN (ID,NAME,Value) 
   VALUES(1, 'subject', @SumSubj), (2, 'age', @SumAge), (3, 'sex', @SumSex) .....

这可以用INSERT tableN ID、NAME、Value和SELECT VALUES修复吗…@darkcminor:no。您可以有一个INSERT tableN。。。价值观….-或者你必须插入到表格中。。。选择但是你不能把两者混为一谈。@Darkc,是的,有。请看下面我的答案。还有一个问题,正如您所说的固定值,如果我对第三个字段select SUMPECURE执行select语句,是否有办法执行您所说的操作:插入表格ID、名称、值值1,‘主题’,从表格中选择SUMPECURE,2,‘年龄’,从表格中选择SUMage??或者我只是有点兴奋。这可以用INSERT tableN ID、NAME、Value选择值来修复吗…@darkcminor:no。你要么有一个INSERT tableN。。。价值观….-或者你必须插入到表格中。。。选择但是你不能把两者混为一谈。@Darkc,是的,有。请看下面我的答案。还有一个问题,正如您所说的固定值,如果我对第三个字段select SUMPECURE执行select语句,是否有办法执行您所说的操作:插入表格ID、名称、值值1,‘主题’,从表格中选择SUMPECURE,2,‘年龄’,从表格中选择SUMage??或者,如果我对1000个值这样做,结果会更好:一个包含UNION ALL,或者写了很多INSERT语句??最有可能的是包含UNION ALL的语句。但是你应该自己测试以确定。如果我对1000个值这样做,哪一个答案优于:使用UNION ALL的一个或编写大量INSERT语句的一个??最有可能的是使用UNION ALL的一个。但是你应该自己测试一下以确定。