微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用 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 举报,一经查实,本站将立刻删除。