Sql server SQL错误将一个字段传输到另一个数据库和表

Sql server SQL错误将一个字段传输到另一个数据库和表,sql-server,Sql Server,我想从新数据库转移到其他数据库和表 我的密码在这里 select try_convert(datetime,LEFT([CRSE_EDTE], 4)+'-'+RIGHT([CRSE_EDTE],2)+'-28',111) as new_CRSE_EDTE FROM [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER] update DMSTAG.dbo.TEMP_AKAUN_MARA set new_TarikhTamatPengajian = new_CRSE_EDTE FR

我想从新数据库转移到其他数据库和表

我的密码在这里

select try_convert(datetime,LEFT([CRSE_EDTE], 4)+'-'+RIGHT([CRSE_EDTE],2)+'-28',111) as new_CRSE_EDTE
FROM [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER]
update DMSTAG.dbo.TEMP_AKAUN_MARA
set new_TarikhTamatPengajian = new_CRSE_EDTE
FROM [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER]
where DMSTAG.dbo.TEMP_AKAUN_MARA.STUDENTN = [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER].[STUDENTN]
collate latin1_general_CI_AI
该代码正在运行,但仅适用于从2020年开始的年份


CRSE_EDTE的原始数据有不同的年份,例如1991-10-11 00:00:00:000

如果您还没有,请在尝试此代码之前备份数据库。它未经测试:

update DMSTAG.dbo.TEMP_AKAUN_MARA
set new_TarikhTamatPengajian = (
select TOP 1 try_convert(datetime,LEFT([CRSE_EDTE], 4)+'-'+RIGHT([CRSE_EDTE],2)+'-28',111) as new_CRSE_EDTE
FROM [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER]
where DMSTAG.dbo.TEMP_AKAUN_MARA.STUDENTN = [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER].[STUDENTN]
collate latin1_general_CI_AI)

我已经用双关语核对了拉丁语。但问题是相同的Msg 468,级别16,状态9,第32行无法解决equal to操作中SQL_Latin1_General_CP1_CI_AS和Latin1_General_CI_AS之间的排序冲突。我已更新了答案。我从未使用过collate命令,但在我看来,这就是应该如何使用它的。和往常一样,请确保您的数据库已备份。我已经尝试了上面的代码。现在已经1小时30分钟还没有完成执行。正常吗?你的数据库有多大?哇!它可能不是最优化的查询,但这是一个很长的时间!您是否能够查看您的表以了解它是否正在正确更新,例如:在另一个选项卡/程序中?