2009-11-18 33 views
10

Tôi đã sử dụng SQL Server 2005 để nhập một cơ sở dữ liệu vào SQL Server 2005. Tôi nhận thấy rằng một số bảng đã được nhập đã được thêm vào với một cột mới có tên là SSMA_timestamp.Dấu thời gian SSMA. Nó là gì, nó được sử dụng như thế nào?

Bất cứ ai có thể cho tôi biết điều này là gì và nó sẽ được sử dụng như thế nào?

Trả lời

10

Tôi nghĩ rằng điều này được tạo ra để Trợ lý di chuyển có thể phát hiện các thay đổi đối với dữ liệu trong quá trình di chuyển. Trừ khi bạn tiếp tục sử dụng Access làm giao diện người dùng cho cơ sở dữ liệu cụ thể mà bạn đã di chuyển sang SQL Server (trong trường hợp này là câu trả lời của Simon), tôi không nghĩ rằng chúng sẽ được sử dụng cho bất cứ điều gì sau khi di chuyển hoàn tất, do đó, bạn nên an toàn khi thả các cột mới này sau khi chắc chắn mọi thứ đã hoàn thành.

+0

Cảm ơn thông tin! – Chris

+0

Xin lưu ý rằng mặc dù thư trả lời này đã bị gắn cờ vì câu trả lời không chính xác (xem trả lời của tôi bên dưới để liên kết đến giải thích chi tiết về các cột SSMA_timestamp được sử dụng cho). –

+0

@SimonTewsi vì vậy câu trả lời ba tuổi của tôi cho câu hỏi ba năm này không chính xác trong trường hợp duy nhất mà bạn tiếp tục sử dụng Access làm giao diện người dùng mà OP không chỉ định anh ấy đang làm và bạn bầu cho tôi? Tinh thần cộng đồng tốt. –

15

Cột SSMA_timestamp được thêm không chỉ được sử dụng trong quá trình di chuyển. Chúng thực sự giúp tránh các lỗi khi Access cập nhật các bản ghi trong các bảng được liên kết với SQL Server. Vì vậy, nếu bạn vẫn đang sử dụng một giao diện người dùng truy cập được kết nối với cơ sở dữ liệu SQL Server đã di chuyển, tốt nhất là không thả các cột SSMA_timestamp.

Từ bài viết MSDN Optimizing Microsoft Office Access Applications Linked to SQL Server:

Hỗ trợ Kiểm tra Concurrency

Có lẽ nguyên nhân hàng đầu của các vấn đề updatability trong bảng Office Access liên kết là Office Access không thể xác minh xem số liệu về các trận đấu máy chủ những gì được truy xuất lần cuối bởi dynaset đang được cập nhật. Nếu Office Access không thể thực hiện xác minh này, nó giả định rằng hàng máy chủ đã được sửa đổi hoặc xóa bởi một người dùng khác và nó hủy bỏ bản cập nhật.

Có một số loại dữ liệu mà Office Access không thể kiểm tra đáng tin cậy cho các giá trị khớp. Chúng bao gồm các loại đối tượng lớn, chẳng hạn như văn bản, ntext, hình ảnh, và các loại varchar (max), nvarchar (max) và varbinary (max) được giới thiệu trong SQL Server 2005. Ngoài ra, các kiểu số dấu chấm động, chẳng hạn như thực và nổi, có thể làm tròn các vấn đề có thể làm cho so sánh không chính xác, dẫn đến hủy bỏ cập nhật khi các giá trị đã không thực sự thay đổi. Office Access cũng gặp sự cố khi cập nhật các bảng chứa các cột bit không có giá trị mặc định và chứa giá trị null.

Cách nhanh chóng và dễ dàng để khắc phục những vấn đề này là thêm cột dấu thời gian vào bảng trên SQL Server. Dữ liệu trong cột dấu thời gian hoàn toàn không liên quan đến ngày hoặc giờ. Thay vào đó, nó là một giá trị nhị phân được đảm bảo là duy nhất trên cơ sở dữ liệu và tăng tự động mỗi lần một giá trị mới được gán cho bất kỳ cột nào trong bảng. Thuật ngữ chuẩn ANSI cho loại cột này là hàng tuần. Thuật ngữ này được hỗ trợ trong SQL Server.

Truy nhập Office tự động phát hiện khi bảng chứa loại cột này và sử dụng nó trong mệnh đề WHERE của tất cả các câu lệnh UPDATE và DELETE ảnh hưởng đến bảng đó. Điều này hiệu quả hơn việc xác minh rằng tất cả các cột khác vẫn có cùng giá trị mà chúng có khi dynaset được làm mới lần cuối.

Trợ lý di chuyển máy chủ SQL cho Office Access tự động thêm cột có tên SSMA_TimeStamp vào bất kỳ bảng nào chứa các kiểu dữ liệu có thể ảnh hưởng đến khả năng cập nhật.

+1

Thay vì đăng liên kết tới một số diễn đàn trên một số trang web có thể biến mất vào ngày mai, tại sao không đăng phần thực sự có liên quan của thông tin ở đây, vì vậy câu trả lời này sẽ hữu ích cho mọi người bất kể điều gì xảy ra trên các trang web khác? –

+3

@Aaron: Điểm tốt. Tôi đã chỉnh sửa trả lời của tôi theo đề xuất của bạn. Cảm ơn. –

Các vấn đề liên quan