Làm thế nào để sửa lỗi ngăn dữ liệu trình báo cáo quản lý tích hợp

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 2931999
Tóm tắt
Bài viết này cung cấp các bước để chạy tập lệnh Diagnostics.sql Management Reporter 2012 dành cho Microsoft Dynamics SL 2011. Tập lệnh này có thể xác định lỗi dữ liệu có thể không thành công trình báo cáo quản lý tích hợp. Lỗi dữ liệu có thể có nguồn gốc từ nhiều nguồn và có thể gây ra sự thiếu nhất quán giữa bảng hoặc tạo giá trị trường hợp lệ.

Ở cuối bài viết này còn có một vài kịch bản được sử dụng để tìm dữ liệu chữ thường có thể gây ra vấn đề trong ông.
Giải pháp
Tải xuống tệp tập lệnh sau, và sau đó làm theo các bước sau để chạy các kịch bản với bộ máy cơ sở dữ liệu Microsoft Dynamics SL ứng dụng trong trình báo cáo quản lý. Thay đổi loại kết quả Đầu ra văn bản để xem dễ dàng hơn.

Lưu ý: Thông tin này có trong tệp Diagnostics2.Sql được bao gồm trong tệp MR2.zip.

Quan trọng Luôn tạo đồng gửi lưu bộ máy cơ sở dữ liệu trước khi cập nhật bất kỳ dữ liệu nào trong Management Studio.

Bước 1

  • Bạn có nhiều hơn một loại tiền tệ ID thiết lập?

    Select 'Step1a', CASE WHEN COUNT(*)>1 then 'YES' else 'NO' end, count(*) from currncy with (nolock)

    Lưu ý:
    • Không = đơn vị tiền tệ
    • Có = nhiều loại tiền tệ được thiết lập trong tiền tệ duy trì và có số được liệt kê
  • Đa tiền tệ được kích hoạt?

    Select top 1 'Step1b',case isnull((select MAX(mcactivated) from cmsetup),-99) WHEN 1 then 'ENABLED' when -99 then 'NOT SETUP' else 'NOT ENABLED' end

    Lưu ý: Lệnh này trả lại "Cho phép" hoặc "Không được thiết lập."

Bước 2

tra cứu sơ thiết lập tiền tệ không hợp lệ. Đánh giá mỗi trường hợp. Để được trợ giúp để thực hiện việc này, hãy liên hệ bộ phận hỗ trợ kỹ thuật của Microsoft Dynamics.
  • Điều này sẽ là tiền tệ cơ sở của bộ máy cơ sở dữ liệu ứng dụng:

    Select 'Step2a',BaseCuryId from glsetup with (nolock)

  • Đơn vị tiền tệ cơ sở của sổ cái thực (cân bằng loại = 'a') sẽ thu cơ sở của bộ máy cơ sở dữ liệu.

    Select 'Step2b',BaseCuryID,LedgerID, BalanceType from ledger with (nolock)
  • Trường BaseCuryID của tất cả các công ty trong bộ máy cơ sở dữ liệu cho ứng dụng tất cả phải giống nhau.

  • Tập lệnh này hiển thị trường BaseCuryID tất cả ứng dụng bộ máy cơ sở dữ liệu có liên quan đến bộ máy cơ sở dữ liệu hệ thống.

    Select 'Step2c',BaseCuryID, CpnyID, databasename from vs_company with (nolock)
  • Trường BaseCuryIDs phải tồn tại trong bảng bảo trì tiền tệ. Bất kỳ Ngoại tệ nên cũng có trong bảng này.

    Select 'Step2d',curyid from currncy with (nolock)

Bước 3

tra cứu các giá trị không chính xác cho các trường CuryIDledgerIDtrong giao dịch và tóm tắt các bản ghi. Các báo cáo truy cập chỉ ghi trên 100. Xem tất cả các bản ghi, loại bỏ từ "top 100" từ tập lệnh.
  • Accthist có một ID tiền tệ không có trong bảng bảo trì tiền tệ.

    Select top 100 'Step3a',CpnyID, LedgerID, FiscYr, Acct, SUB, CuryId, * from accthist with (nolock) where CuryId not in (select CuryId from Currncy with (nolock))

    Khắc phục: Bạn có thể phải cập nhật các trườngCuryID để phù hợp với trường BaseCuryID . Tuy nhiên, Hồ sơ mà có thể đã tồn tại. Trong trường hợp này, bạn nhận được thông báo 6909. Nếu điều này xảy ra, xác định xem các hồ sơ bắt buộc.

  • Accthist có một ID tiền tệ không khớp với sổ cái dữ liệu (hoặc một sổ cái mà không có trong bảng sổ cái).

    Select top 100 'Step3b',a.CpnyID, a.LedgerID, a.FiscYr, a.Acct, a.SUB, a.CuryId, l.BaseCuryID,* from accthist a with (nolock) left join Ledger l with (nolock) on a.LedgerID=l.LedgerID where l.LedgerID is null OR l.BaseCuryID<>a.CuryId

    Khắc phục: Bản Cập Nhật phụ thuộc vào từng trường hợp.

  • CuryAcct có một CuryID không có trong bảng bảo trì tiền tệ.

    Select top 100 'Step3c',CpnyID, LedgerID, FiscYr, Acct, SUB,BaseCuryID, CuryId, * from curyacct with (nolock) where CuryId not in (select CuryId from Currncy with (nolock))

    Khắc phục: Bản Cập Nhật sẽ phụ thuộc vào từng trường hợp. Bạn có thể xoá bản ghi sau nếu không có hồ sơ AcctHist tương ứng. Ngoài ra, bạn có thể phải cập nhật các trường CuryID . Tuy nhiên, Hồ sơ mà có thể đã tồn tại. Trong trường hợp này, bạn nhận được thông báo 6909. Nếu điều này xảy ra, xác định xem bản ghi cần thiết.

  • CuryAcct với BasecuryID không khớp với hồ sơ sổ kế toán (hoặc một sổ cái mà không có trong bảng sổ cái).

    Select top 100 'Step3d',c.CpnyID, c.LedgerID, c.FiscYr, c.Acct, c.SUB,c.BaseCuryID, c.CuryId,l.BaseCuryID, * from curyacct c with (nolock) left join Ledger l with (nolock) on c.LedgerID=l.LedgerID where l.LedgerID is null OR c.BaseCuryID<>l.BaseCuryId

    Khắc phục: Bản Cập Nhật phụ thuộc vào từng trường hợp.

  • GLTran với CuryID không có trong bảng bảo trì tiền tệ.

    Select top 100 'Step3e',CpnyID, LedgerID, FiscYr, Acct, SUB,BaseCuryID, CuryId,* from gltran with (nolock) where Posted='P' and CuryId not in (select CuryId from Currncy)

    Khắc phục: Bản Cập Nhật phụ thuộc vào từng trường hợp. Bạn có thể phải cập nhật các trườngCuryId giá trị hợp lệ.

  • GLTran với một giá trị trường BaseCuryID phù hợp với bản ghi sổ kế toán (hoặc một sổ cái mà không có trong bảng sổ cái).

    Select top 100 'Step3f',g.CpnyID, g.LedgerID, g.FiscYr, g.Acct, g.SUB, g.BaseCuryID, g.CuryId, * from gltran g with (nolock) left join Ledger l with (nolock) on g.LedgerID=l.LedgerID where g.Posted='P' and g.LedgerID is null OR l.BaseCuryID<>g.BaseCuryId

    Để khắc phục: Cập Nhật sẽ phụ thuộc vào từng trường hợp. Bạn có thể phải cập nhật các trườngBaseCuryID giá trị hợp lệ.

Bước 4

tra cứu không khớp tóm tắt ghi.
  • Tìm CuryAcct hồ sơ mà không có AcctHist hồ sơ.

    Select top 100 'Step4a',c.CpnyID, c.LedgerID, c.FiscYr, c.Acct, c.Sub, c.BaseCuryID, c.CuryId,*from CuryAcct c with (nolock)left join AcctHist a with (nolock) on c.CpnyID=a.CpnyID and c.Acct=a.Acct and c.Sub=a.Sub and c.LedgerID=a.LedgerID and c.FiscYr=a.FiscYrwhere a.CpnyID is null order by c.CpnyID, c.Acct, c.SUB, c.ledgerid, c.FiscYr

    Khắc phục: Chạy tập lệnh Fix4a.SQL từ MR2.zip trên một tiền tệ và đa tiền tệ bộ máy cơ sở dữ liệu nếu lỗi được báo cáo.

  • Tìm Accthist mà không có CuryAcct hồ sơ.

    Select top 100 'Step4b',a.CpnyID, a.LedgerID, a.FiscYr, a.Acct, a.Sub, a.CuryId, *from AcctHist a with (nolock)left join Curyacct c with (nolock) on c.CpnyID=a.CpnyID and c.Acct=a.Acct and c.Sub=a.Sub and c.LedgerID=a.LedgerID and c.FiscYr=a.FiscYrwhere a.BalanceType='A' and c.CpnyID is null order by a.CpnyID, a.Acct, a.SUB, a.ledgerid, a.FiscYr

    Khắc phục: Cho đa tiền tệ bộ máy cơ sở dữ liệu, hoặc khởi tạo sơ curyacct cài đặt chuyên biệt chế độ GL > lịch sử tài khoản hoặc đăng một giao dịch để acct/con/sổ cái/fiscyr/cpnyid/curyid. Tạo hoặc Cập Nhật sơ curyacct GL > lịch sử tài khoản > tiền tệ tab, bạn phải nhập dữ liệu cho mỗi khoảng thời gian. Khi bạn tạo một lô để gửi một giao dịch tài khoản, điều này sẽ tạo một bản ghi CuryAcct có giá trị cho mỗi khoảng thời gian. Đảm bảo rằng bạn sử dụng năm lỗi được báo cáo năm đăng. Sau đó, đảo ngược lô bỏ đô la trong tài khoản.

    bộ máy cơ sở dữ liệu một loại tiền tệ, mở hồ sơ GL > lịch sử tài khoản trong chế độ cài đặt chuyên biệt nếu chỉ có một hoặc hai bản ghi. Thay đổi số dư đầu bằng một số lượng, lưu bản ghi, trở lại nó, và sau đó lưu lại. Điều này tạo ra bản ghi curyacct. Hoặc, bạn có thể chạy tập lệnh từ bước 6a trong phần này.

  • GLTrans không AcctHist

    Truy vấn này sẽ chạy chậm nếu có nhiều mục gltrans nếu tất cả các mục hợp lệ. (Truy vấn thực sự chạy nhanh hơn nếu dữ liệu không hợp lệ.)

    Select top 100 'Step4c',g.CpnyID, g.LedgerID, g.FiscYr, g.Acct, g.Sub, g.BaseCuryID, g.CuryId,* from GLTran g with (nolock)left join AcctHist a with (nolock) on g.CpnyID=a.CpnyID and g.Acct=a.Acct and g.Sub=a.Sub and g.LedgerID=a.LedgerID and g.FiscYr=a.FiscYrinner join vs_company c with (nolock) on g.CpnyID=c.CpnyID and c.CpnyCOA in (select CpnyID from glsetup with (nolock)) -- only companies in this application DBwhere g.posted='P' and a.CpnyID is null order by g.CpnyID, g.LedgerID, g.FiscYr, g.Acct, g.Suboption (force order) -- added for performance in larger databases

    Khắc phục: Đánh giá GLtrans trường mới. Nếu không có hồ sơ AcctHist, tài chính không sử dụng các giao dịch để báo cáo
  • Điều này thường là do các giao dịch được cũ. Bạn có thể quyết định xoá chúng hoặc thực hiện một số hành động khác. Đánh giá những mục cẩn thận.

Bước 5

tra cứu các bản ghi GLTrans ngày không hợp lệ hoặc dấu kiểm chấm. Hồ sơ như vậy có thể gây ra lỗi sau trong Management Reporter:
  • Văn bản lỗi: năm, tháng và ngày mô tả một DateTime unrepresentable.
  • Văn bản lỗi: đối tượng tham chiếu không được đặt thành một phiên bản của đối tượng.
  • GLTrans hồ sơ có trường FiscYr trống.

    Select top 100 'Step5a',CpnyID, LedgerID, FiscYr, Acct, Sub, perpost, perent, trandate, Posted, Rlsed, BatNbr, Module, * from GLTran with (nolock) where FiscYr='' and (Rlsed=1 or Posted='P')

    Để khắc phục sự cố: xem xét Cập nhật các trường FiscYrdựa trên giá trị perpost.

  • GLTrans hồ sơ có giá trị perpost phía bên ngoài phạm vi bình thường.

    Select top 100 'Step5b',CpnyID, LedgerID, FiscYr, Acct, Sub, perpost, perent, trandate, Posted, Rlsed, BatNbr, Module, *from GLTran with (nolock) where (PerPost>='204812' or PerPost<='195001') and (Rlsed=1 or Posted='P')

    Khắc phục: Các lô sẽ tất cả có một khoảng thời gian trong tương lai để gửi. Bạn có thể mở các đợt GL > Nhật ký giao dịch trong chế độ cài đặt chuyên biệt.
    Xóa chúng, thay đổi thời gian để gửi, hoặc xử lý, phù hợp.

  • GLTrans hồ sơ có giá trị transdate là phía ngoài phạm vi bình thường (thường có một năm 2079).

    Select top 100 'Step5c',CpnyID, LedgerID, FiscYr, Acct, Sub, perpost, perent, trandate,Posted, Rlsed, BatNbr, Module, *from GLTran with (nolock) where (trandate>='01/01/2048' or trandate<='01/01/1950') and (Rlsed=1 or Posted='P') and TranDate<>'1/1/1900'

    Khắc phục: Cập Nhật trandate crtd_datetime. Tập lệnh này hiển thị như thế nào.

    update gltran set trandate=crtd_datetime where (trandate>='01/01/2048' or trandate<='01/01/1950') and (Rlsed=1 or Posted='P') and TranDate<>'1/1/1900' 

  • AcctHist các hồ sơ với trường FiscYr phía ngoài phạm vi bình thường.

    Select top 100 'Step5d',a.CpnyID, a.LedgerID, a.FiscYr, a.Acct, a.Sub, a.CuryId, *from AcctHist a with (nolock) where a.FiscYr>'2048' or a.FiscYr<'1950'

    Khắc phục: Đây là hồ sơ có thể không mong muốn. Trong thao tác dữ liệu lịch sử, bạn có thể đã đặt năm tài chính năm trong tương lai cho các bản ghi cho phiên bản mới hơn có thể xem xét.

Bước 6

Tìm phiên bản trong đó số lượng trong bản ghi AcctHist phù hợp với số lượng trong bản ghi CuryAcct .

Lưu ý: Chạy lệnh này chỉ sau khi đã được khắc phục sự cố trong bước 1 đến 5.

select top 1000 'Step6a', a.CpnyID, a.Acct, a.Sub, a.LedgerID, a.FiscYr, c.numCuryAcct, a.BegBal, c.begbal, a.PtdBal00, c.ptdbal00, a.PtdBal01, c.ptdbal01, a.PtdBal02, c.ptdbal02,   a.PtdBal03, c.ptdbal03, a.PtdBal04, c.ptdbal04, a.PtdBal05, c.ptdbal05, a.PtdBal06, c.ptdbal06, a.PtdBal07, c.ptdbal07, a.PtdBal08, c.ptdbal08,   a.PtdBal09, c.ptdbal09, a.PtdBal10, c.ptdbal10, a.PtdBal11, c.ptdbal11, a.PtdBal12, c.ptdbal12, a.ytdBal00, c.ytdbal00, a.ytdBal01, c.ytdbal01,  a.ytdBal02, c.ytdbal02, a.ytdBal03, c.ytdbal03, a.ytdBal04, c.ytdbal04, a.ytdBal05, c.ytdbal05, a.ytdBal06, c.ytdbal06, a.ytdBal07, c.ytdbal07,   a.ytdBal08, c.ytdbal08, a.ytdBal09, c.ytdbal09, a.ytdBal10, c.ytdbal10, a.ytdBal11, c.ytdbal11, a.ytdBal12, c.ytdbal12  from AcctHist a inner join (select count(*) as numCuryAcct, CpnyID, Acct, Sub, LedgerID, FiscYr, SUM(begbal) as begbal, SUM(ptdbal00) as ptdbal00, SUM(ptdbal01) as ptdbal01, SUM(ptdbal02) as ptdbal02, SUM(ptdbal03) as ptdbal03, SUM(ptdbal04) as ptdbal04, SUM(ptdbal05) as ptdbal05, SUM(ptdbal06) as ptdbal06, SUM(ptdbal07) as ptdbal07, SUM(ptdbal08) as ptdbal08, SUM(ptdbal09) as ptdbal09, SUM(ptdbal10) as ptdbal10, SUM(ptdbal11) as ptdbal11,SUM(ptdbal12) as ptdbal12, SUM(ytdbal00) as ytdbal00, SUM(ytdbal01) as ytdbal01, SUM(ytdbal02) as ytdbal02, SUM(ytdbal03) as ytdbal03, SUM(ytdbal04) as ytdbal04, SUM(ytdbal05) as ytdbal05, SUM(ytdbal06) as ytdbal06, SUM(ytdbal07) as ytdbal07, SUM(ytdbal08) as ytdbal08, SUM(ytdbal09) as ytdbal09, SUM(ytdbal10) as ytdbal10, SUM(ytdbal11) as ytdbal11, SUM(ytdbal12) as ytdbal12from curyacct group by CpnyID, Acct, Sub, LedgerID, FiscYr) c   on a.CpnyID=c.CpnyID and a.Acct=c.Acct and a.Sub=c.Sub and a.LedgerID=c.LedgerID and a.FiscYr=c.FiscYr  where round(a.BegBal,2)<>round(c.begbal,2) or round(a.PtdBal00,2)<>round(c.PtdBal00,2) or round(a.PtdBal01,2)<>round(c.PtdBal01,2) or   round(a.PtdBal02,2)<>round(c.PtdBal02,2) or round(a.PtdBal03,2)<>round(c.PtdBal03,2) or round(a.PtdBal04,2)<>round(c.ptdbal04,2) or   round(a.PtdBal05,2)<>round(c.PtdBal05,2) or round(a.PtdBal06,2)<>round(c.PtdBal06,2) or round(a.PtdBal07,2)<>round(c.PtdBal07,2) or   round(a.PtdBal08,2)<>round(c.PtdBal08,2) or round(a.PtdBal09,2)<>round(c.PtdBal09,2) or round(a.PtdBal10,2)<>round(c.PtdBal10,2) or   round(a.PtdBal11,2)<>round(c.PtdBal11,2) or round(a.PtdBal12,2)<>round(c.PtdBal12,2) or round(a.ytdBal00,2)<>round(c.ytdBal00,2) or   round(a.ytdBal01,2)<>round(c.ytdBal01,2) or round(a.ytdBal02,2)<>round(c.ytdBal02,2) or round(a.ytdBal03,2)<>round(c.ytdBal03,2) or   round(a.ytdBal04,2)<>round(c.ytdbal04,2) or round(a.ytdBal05,2)<>round(c.ytdBal05,2) or round(a.ytdBal06,2)<>round(c.ytdBal06,2) or   round(a.ytdBal07,2)<>round(c.ytdBal07,2) or round(a.ytdBal08,2)<>round(c.ytdBal08,2) or round(a.ytdBal09,2)<>round(c.ytdBal09,2) or   round(a.ytdBal10,2)<>round(c.ytdBal10,2) or round(a.ytdBal11,2)<>round(c.ytdBal11,2) or round(a.ytdBal12,2)<>round(c.ytdBal12,2)

bộ máy cơ sở dữ liệu một loại tiền tệ, mở hồ sơ GL > lịch sử tài khoản trong chế độ cài đặt chuyên biệt nếu có chỉ có một vài hồ sơ. Thay đổi số dư đầu bằng một số lượng, lưu bản ghi, trở lại hồ sơ, và sau đó lưu lại. Điều này Cập Nhật bản ghi Curyacct để phù hợp với hồ sơ Accthist . Nếu có nhiều hồ sơ chạy tập lệnh ResetCuryAcctfromAcctHistStep6a.sql từ tệp MR2.zip.

Trong bộ máy cơ sở dữ liệu đa tiền tệ, mở GL > lịch sử tài khoản trong chế độ cài đặt chuyên biệt nếu chỉ một vài hồ sơ, và sau đó bấm tab thuđúng mỗi giai đoạn cá nhân, phù hợp. Nếu có nhiều hồ sơ, chạy lệnh MultiCurrencyStep6aFix.sql từ tệp MR2.zip. Bất kỳ thay đổi được thực hiện trong hồ sơ cơ sởCuryID .

Sau khi hoàn thành bước 6, chạy lệnh Diagnostics2.SQL để xác minh rằng nó không thông báo lỗi.



Các kịch bản để tìm dữ liệu chữ thường có thể gây ra vấn đề trong ông.

Kịch bản này tra cứu nhiều hồ sơ mà Company.DatabaseName không có hợp đồng (ví dụ: SLDemoApp và SLDEMOAPP). Chạy lệnh này với bộ máy cơ sở dữ liệu hệ thống.

chọn c.DatabaseName, c.CpnyID từ công ty c nối trái ngoài sys.databases sd trên c.DatabaseName COLLATE Latin1_General_CS_AS = sd.name COLLATE Latin1_General_CS_AS

nơi sd.name là không và DatabaseName ở (chọn c1. DatabaseName từ công ty c1 trái liên kết bên ngoài công ty c2 trên c1. DatabaseName = c2. DatabaseName nơi c1. DatabaseName = c2. DatabaseName và c1. DatabaseName đối chiếu Latin1_General_CS_AS! = c2. DatabaseName đối chiếu Latin1_General_CS_AS)

Để khắc phục sự cố: Cập Nhật databasename là Hoa.




Lệnh này sẽ cho công ty ID chữ thường và subaccount trong bảng accthist, curyacct và gltran. Chạy lệnh này với bộ máy cơ sở dữ liệu hệ thống.


Tuyên bố @DbName VARCHAR(50)
Tuyên bố @useStatement VARCHAR(256)
Tuyên bố @fullStatement VARCHAR(8000)

Tuyên bố db_cursor CURSOR FOR
chọn riêng biệt DatabaseName công ty

MỞ db_cursor
FETCH NEXT FROM db_cursor thành @DbName

TRONG KHI @@FETCH_STATUS = 0
Bắt đầu

thiết lập @DbName = LTRIM(RTRIM(@DbName))
thiết lập @useStatement = 'Sử dụng' + @DbName + "
thiết lập @fullStatement = '
CHỌN phụ là "con - AcctHist-' + @DbName + ''', *
TỪ AcctHist
NƠI UPPER(sub) <> phụ COLLATE Latin1_General_CS_AS

CHỌN phụ là "con - GLTran-' + @DbName + ''', *
TỪ GLTran
NƠI UPPER(sub) <> phụ COLLATE Latin1_General_CS_AS


CHỌN phụ là "con - CuryAcct-' + @DbName + ''', *
TỪ CuryAcct
NƠI UPPER(sub) <> phụ COLLATE Latin1_General_CS_AS

CHỌN CpnyID như "CpnyID - AcctHist-' + @DbName + ''', *
TỪ AcctHist
NƠI UPPER(CpnyID) <> CpnyID đối chiếu Latin1_General_CS_AS

CHỌN CpnyID như "CpnyID - GLTran-' + @DbName + ''', *
TỪ GLTran
NƠI UPPER(CpnyID) <> CpnyID đối chiếu Latin1_General_CS_AS


CHỌN CpnyID như "CpnyID - CuryAcct-' + @DbName + ''', *
TỪ CuryAcct
NƠI UPPER(CpnyID) <> CpnyID đối chiếu Latin1_General_CS_AS


CHỌN phụ là "con - SubAcct-' + @DbName + ''', * từ SubAcct nơi (phụ đối chiếu sql_latin1_general_cp1_cs_as <> upper(SUB))
hoặc (đối chiếu ConsolSub sql_latin1_general_cp1_cs_as <> upper(ConsolSub))
'

exec (@useStatement + @fullStatement)

FETCH NEXT FROM db_cursor thành @DbName
KẾT THÚC

GẦN db_cursor
DEALLOCATE db_cursor




Để khắc phục sự cố: nếu bạn tìm thấy bất kỳ chữ thường subaccounts bạn có thể chạy để đặt chúng Hoa.


Cập Nhật GLTran đặt con = UPPER(Sub)

Cập Nhật AcctHist đặt con = UPPER(Sub)

Cập Nhật CuryAcct đặt con = UPPER(Sub)



Nếu bạn tìm thấy bất kỳ chữ công ty ID bạn có thể chạy để đặt chúng Hoa.

Cập Nhật accthist đặt cpnyid = UPPER(cpnyid) nơi UPPER(CpnyID) <> Latin1_General_CS_AS CpnyID đối chiếu

Cập Nhật curyacct đặt cpnyid = UPPER(cpnyid) nơi UPPER(CpnyID) <> Latin1_General_CS_AS CpnyID đối chiếu

Cập Nhật gltran đặt cpnyid = UPPER(cpnyid) nơi UPPER(CpnyID) <> Latin1_General_CS_AS CpnyID đối chiếu



Kịch bản này tra cứu chữ thường LedgerID trong bảng accthist, curyacct và gltran. Chạy lệnh này với bộ máy cơ sở dữ liệu ứng dụng.

CHỌN hàng đầu 1 LedgerID từ AcctHist nơi UPPER(LedgerID) <> LedgerID đối chiếu Latin1_General_CS_AS

CHỌN hàng đầu 1 LedgerID từ GLTran nơi UPPER(LedgerID) <> LedgerID đối chiếu Latin1_General_CS_AS

CHỌN hàng đầu 1 LedgerID từ CuryAcct nơi UPPER(LedgerID) <> LedgerID đối chiếu Latin1_General_CS_AS



Để khắc phục sự cố: nếu bạn tìm thấy bất kỳ chữ thường LedgerID của bạn có thể chạy để đặt chúng Hoa.

Cập Nhật GLTran đặt LedgerID = UPPER(LedgerID) nơi Latin1_General_BIN LedgerID đối chiếu như '[a-z] %'

Cập Nhật AcctHist đặt LedgerID = UPPER(LedgerID) nơi Latin1_General_BIN LedgerID đối chiếu như '[a-z] %'

Cập Nhật CuryAcct đặt LedgerID = UPPER(LedgerID) nơi Latin1_General_BIN LedgerID đối chiếu như '[a-z] %'


Kịch bản này tra cứu chữ thường CuryID trong bảng accthist, curyacct và gltran. Chạy lệnh này với bộ máy cơ sở dữ liệu ứng dụng.

CHỌN hàng đầu 1 CuryID từ AcctHist nơi UPPER(CuryID) <> CuryID đối chiếu Latin1_General_CS_AS

CHỌN hàng đầu 1 CuryID từ GLTran nơi UPPER(CuryID) <> CuryID đối chiếu Latin1_General_CS_AS

CHỌN hàng đầu 1 CuryID từ CuryAcct nơi UPPER(CuryID) <> CuryID đối chiếu Latin1_General_CS_AS



Để khắc phục:2964624.

Cảnh báo: Bài viết này được dịch tự động

属性

文章 ID:2931999 - 上次审阅时间:06/17/2015 01:02:00 - 修订版本: 7.0

Microsoft Dynamics SL 2011 Service Pack 2, Microsoft Dynamics SL 2011 Service Pack 1, Microsoft Dynamics SL 2011 Feature Pack 1, Microsoft Dynamics SL 2011

  • kbmbsmigrate kbsurveynew kbmt KB2931999 KbMtvi
反馈