Sql server 2008 r2 使用SQL Server 2008 R2中的SQL Server 2005数据生成架构时出错
当我尝试为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 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 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));