1

我已经安装了 sql server 2008 r2 Management studio,但是服务器有 sql server 2005 数据库。有什么原因我可以测试将在我在 sql server 2008 中编写的 sql server 2005 上运行的查询。

我有在 sql server 2008 中有效但在 2005 年无效的示例查询。

CREATE TABLE #Tmp
(
    NoOfMembers int,
    AverageAge int
)
insert into #Tmp(NoOfMembers,AverageAge)       

Values((Select Count(*)NoOfMembers  From Customer where Confirmed = 1),
(Select AVG(CONVERT(int,Age)) AverageAge From Customer where Confirmed = 1)
)
select * From #Tmp

提前感谢任何帮助

4

2 回答 2

0

您可以针对 2005 sql server 使用 sql 2008 management studio,而不会出现问题。如果您的 SQL 语句针对数据库触发并且在 sql 2005 中不起作用,则服务器将回答错误消息。

如果您有一个 sql 2008 并且想要针对 2005 进行测试,您可以将兼容模式设置为 2005,这也可以。

您发布的 sql 语句希望在您的值部分使用子查询。这在 sql2005 上不起作用并产生错误。如果您在 2005 年需要它,请创建一个标量函数,例如并使用它。

编辑:好吧,如果你想在没有语句的情况下使用 sql 将数据插入表中,VALUES你可以这样做:

CREATE TABLE #Tmp
(
    NoOfMembers int,
    AverageAge int
)

INSERT INTO #Tmp(NoOfMembers,AverageAge)       
SELECT COUNT(*), AVG(CONVERT(int,Age)) 
FROM Customer WHERE Confirmed = 1

SELECT * FROM #Tmp
于 2013-03-14T06:39:01.147 回答
0

好吧,这就是你可以让它工作的方法SQL Server 2005

CREATE TABLE #Tmp
(
    NoOfMembers int,
    AverageAge int
)

insert into #Tmp(NoOfMembers,AverageAge)       
    (Select Count(*), AVG(CONVERT(int,Age)) From Customer where Confirmed = 1)

select * From #Tmp
于 2013-03-14T07:02:37.530 回答