如何在安装2008 r2时测试Sql server 2005查询

时间:2013-03-14 06:32:25

标签: sql-server-2008 sql-server-2005

我已经安装了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

任何帮助 Thanx提前

2 个答案:

答案 0 :(得分:0)

您可以使用sql 2008管理工作室对2005 sql server没有问题。如果您的SQL语句是针对数据库触发的,并且在sql 2005中不起作用,则服务器将回答错误消息。

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

您发布的sql语句想要在值部分中使用子查询。这不适用于sql2005并产生错误。如果你在2005年需要它,那么创建一个标量函数,例如并改为使用它。

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

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

答案 1 :(得分: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