Sql server 2008 r2 使用SQL Server 2008 R2中的SQL Server 2005数据生成架构时出错

Sql server 2008 r2 使用SQL Server 2008 R2中的SQL Server 2005数据生成架构时出错,sql-server-2008-r2,Sql Server 2008 R2,当我尝试为SQL Server 2005版生成架构和数据时,SQL 2008 R2中的“保存或发布脚本向导”出现以下错误 错误消息: Microsoft.SqlServer.Management.Smo.SmoException:对象ExamaTempt中的列RemainingTime包含类型Time,目标服务器版本SQL server 2005不支持该类型。在Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.

当我尝试为SQL Server 2005版生成架构和数据时,SQL 2008 R2中的“保存或发布脚本向导”出现以下错误

错误消息:

Microsoft.SqlServer.Management.Smo.SmoException:对象ExamaTempt中的列RemainingTime包含类型Time,目标服务器版本SQL server 2005不支持该类型。在Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.worker_DoWorkObject发送方,DoWorkEventTarget e位于System.ComponentModel.BackgroundWorker.OnDoWorkWorkEventTarget e位于System.ComponentModel.BackgroundWorker.WorkerThreadStartObject参数


SQL 2005中的时间类型有其他选择吗?

我只使用datetimes来存储每个单元。这样做可以确保您将来能够使用所有本机datetime函数来搜索或操作此数据。如果您选择升级2005DB,您还可以在将来轻松地向前转换到离散数据类型

在下面的示例中,请参见如何使用检查约束提供某些数据类型完整性

declare @time time = '10:30',
        @date date = '01/01/2001';

select  [theTime] = cast(@time as datetime),
        [theDate] = cast(@date as datetime),
        [theDateTime] = cast(@time as datetime) + cast(@date as datetime);

declare @t table (theDate datetime check(dateAdd(dd,datediff(dd,0,theDate),0) = theDate), theTime datetime check(datediff(dd,0,theTime) = 0))

-- succeeds, since you didnt supply date in the time only column
insert into @t  
    values(cast('01/01/2001' as datetime), cast('10:30' as datetime));

-- fails, since you passed date with the expected time only value
insert into @t
    values(cast('01/01/2001' as datetime), cast('01/01/2001 10:30' as datetime));

-- fails, since you passed time with expected date only value
insert into @t
    values(cast('01/01/2001 10:30' as datetime), cast('10:30' as datetime));