使用 SQL 游标 SQL Server 更新和设置

问题描述

我有一个关于更新表的 sql Server 查询的问题 我使用curser来更新我的表,我收到关于日期和varchar之间转换的错误 错误Conversion Failed when converting date and/or time from character string. 我需要帮助。我认为原因是我使用了动态 sql 语句,我尝试替换它但没有。运气

这里是完整的查询

 Declare update_cursor
    CURSOR  LOCAL 
    FOR
    (select  disTINCT  hospital,dataset,table_name,COLUMN_NAME,source from dbo.input_table  where hospital= Hospital_name);
FOR UPDATE of hospital,source
    
    
    
    OPEN update_cursor
    
    FETCH NEXT FROM update_cursor INTO
                        @HospitalName,@DS,@tbl_nm,@clmn_nm,@source_v
    
    WHILE @@FETCH_STATUS = 0
            BEGIN
                if @source_v = 'A'  
                  begin 
                  set @MaxTimestamp_inSource = N'(select max(SYNC_TIMESTAMP) from '+@tbl_nm+')'
                  --EXEC sp_Executesql @MaxTimestamp_inSource
                  end
                 Else
                 begin
                  set @MaxTimestamp_inSource = N'(select max(INSETR_ETL_TS) from '+@tbl_nm+')'
                  EXEC   sp_Executesql @MaxTimestamp_inSource
                  end
    
            
                    update dbo.input_table
                    set MaxSynchTimestamp  = @MaxTimestamp_inSource
                    where 
                    agency = @HospitalName AND
                    dataset = @DS AND
                    table_name = @tbl_nm AND
                    column_name = @clmn_nm
    
    
    FETCH NEXT FROM update_cursor INTO
                        @HospitalName,@source_v
                        
    END
    CLOSE update_cursor
    DEALLOCATE update_cursor
    
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)