Thông báo lỗi khi bạn cố gắng tiết kiệm một bàn trong SQL Server: "Lưu thay đổi không được phép"

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để 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 ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại 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, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. 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. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 956176
TRIỆU CHỨNG
Khi bạn sử dụng dữ liệu định nghĩa ngôn ngữ (Q) để sửa đổi một bảng, và sau đó bạn cố gắng để lưu các bảng trong Microsoft SQL Server 2008, bạn có thể nhận được thông báo sau:
Không được phép lưu thay đổi. Những thay đổi mà bạn đã thực hiện yêu cầu các bảng dưới đây để được giảm xuống và tái tạo.Bạn có một trong hai thực hiện thay đổi đến một bảng mà không thể được tái tạo hay kích hoạt các tùy chọn ngăn chặn lưu thay đổi yêu cầu bảng được tiếng.
NGUYÊN NHÂN
Vấn đề này xảy ra khi các Ngăn chặn tiết kiệm những thay đổi đó có yêu cầu re-creation bảng tùy chọn được kích hoạt, và bạn thực hiện một hoặc nhiều những thay đổi sau để bàn:
  • Bạn thay đổi các Cho phép Nulls thiết lập cho một cột.
  • Bạn sắp xếp lại cột trong bảng.
  • Bạn thay đổi kiểu dữ liệu cột.
  • Bạn thêm một cột mới.
Khi bạn thay đổi một bảng để cho bạn thay đổi cấu trúc siêu dữ liệu của bảng, và sau đó bạn lưu bảng, bảng phải được tiếng dựa trên những thay đổi này. Điều này có thể dẫn đến mất siêu dữ liệu và trực tiếp mất dữ liệu trong re-creation của bảng. Nếu bạn bật các Ngăn chặn tiết kiệm những thay đổi đó có yêu cầu re-creation bảng tùy chọn trong các Nhà thiết kế phần của các SQL Server quản lý tùy chọn Studio (SSMS) cửa sổ, bạn nhận được thông báo lỗi được đề cập trong phần "Triệu chứng".
CÁCH GIẢI QUYẾT KHÁC
Để làm việc xung quanh vấn đề này, sử dụng Transact-SQL phát biểu để thay đổi các cấu trúc siêu dữ liệu của một bảng. Để thêm thông tin là các chủ đề sau trong SQL Server sách trực tuyến:

http://MSDN.Microsoft.com/en-US/Library/ms190273.aspx

Ví dụ, thay đổi MyDate cột của loại datetime trong bảng gọi là MyTable chấp nhận giá trị NULL bạn có thể sử dụng:

alter table MyTable alter column MyDate7 datetime NULL

Quan trọng Chúng tôi đề nghị rằng bạn không làm việc xung quanh vấn đề này bằng cách tắt tùy chọn ngăn chặn lưu thay đổi điều đó yêu cầu bảng re-creation . Để biết thêm chi tiết về những rủi ro của cách tắt tùy chọn này, hãy xem phần "Thông tin".
TÌNH TRẠNG
Microsoft đã xác nhận rằng đây là một lỗi trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
THÔNG TIN THÊM
Để thay đổi các Ngăn chặn tiết kiệm những thay đổi đó có yêu cầu re-creation bảng tùy chọn, hãy làm theo các bước sau:
  1. Mở SQL Server Management Studio (SSMS).
  2. Trên các Công cụ trình đơn, nhấp vào Tùy chọn.
  3. Trong Ngăn dẫn hướng của các Tùy chọn cửa sổ, bấm Nhà thiết kế.
  4. Chọn hoặc xoá các Ngăn chặn tiết kiệm những thay đổi đó có yêu cầu re-creation bảng kiểm tra hộp và bấm Ok.
Lưu ý Nếu bạn vô hiệu tuỳ chọn này, bạn không được cảnh báo khi bạn lưu bảng mà những thay đổi mà bạn thực hiện đã thay đổi cấu trúc siêu dữ liệu bảng. Trong trường hợp này, mất dữ liệu có thể xảy ra khi bạn lưu bảng.

Nguy cơ bị tắt tùy chọn "Ngăn chặn tiết kiệm những thay đổi đó có yêu cầu bảng re-creation"

Mặc dù cách tắt tùy chọn này có thể giúp bạn tránh tái tạo một bảng, nó cũng có thể dẫn đến những thay đổi bị mất. Ví dụ, giả sử rằng bạn kích hoạt tính năng thay đổi theo dõi trong SQL Server 2008 để theo dõi các thay đổi vào bảng. Khi bạn thực hiện một thao tác là nguyên nhân gây bảng để được tái tạo, bạn nhận được thông báo lỗi được đề cập trong phần "Triệu chứng". Tuy nhiên, nếu bạn tắt tùy chọn này, sự thay đổi hiện tại theo dõi thông tin bị xoá khi bảng là tiếng. Vì vậy, chúng tôi đề nghị rằng bạn không làm việc xung quanh vấn đề này bằng cách tắt tùy chọn.

Để xác định xem các tính năng thay đổi theo dõi được kích hoạt cho một bảng, hãy làm theo các bước sau:
  1. Trong SQL Server Management Studio, định vị bảng trong Đối tượng Explorer.
  2. Bấm chuột phải vào bảng, và sau đó bấm thuộc tính.
  3. Trong hộp thoại Thuộc tính bảng , nhấp vào Thay đổi theo dõi.
Nếu giá trị của Biến đổi theo dõi mục là đúng, tùy chọn này được kích hoạt cho các bảng. Nếu giá trị là sai, tùy chọn này bị vô hiệu hóa.

Khi thay đổi theo dõi tính năng được kích hoạt, sử dụng Transact-SQL phát biểu để thay đổi cấu trúc siêu dữ liệu bảng.

Các bước để tạo lại vấn đề

  1. Trong SQL Server Management Studio, tạo ra một bảng có chứa một khoá chính trong các công cụ thiết kế bảng.
  2. Bấm chuột phải vào bộ máy cơ sở dữ liệu có chứa bảng này, và sau đó nhấp vào Thuộc tính.
  3. Trong các Thuộc tính bộ máy cơ sở dữ liệu hộp thoại hộp, bấm vào Thay đổi theo dõi.
  4. Thiết lập giá trị của các Thay đổi theo dõi khoản mục để Sự thật, sau đó bấm Ok.
  5. Bấm chuột phải vào bảng, và sau đó nhấp vào Thuộc tính.
  6. Trong các Thuộc tính bảng hộp thoại hộp, bấm vào Thay đổi theo dõi.
  7. Thiết lập giá trị của các Thay đổi theo dõi khoản mục để Sự thật, sau đó bấm Ok.
  8. Trên các Công cụ trình đơn, nhấp vào Tùy chọn.
  9. Trong các Tùy chọn hộp thoại hộp, bấm vào Nhà thiết kế.
  10. Nhấn vào đây để chọn các Ngăn chặn tiết kiệm những thay đổi đó có yêu cầu bảng re-creation kiểm tra hộp và bấm Ok.
  11. Trong các công cụ thiết kế bảng, thay đổi các Cho phép Nulls thiết lập trên một cột hiện có.
  12. Cố gắng để lưu các thay đổi vào bảng.
sqlsvr12 sqlsvr2008 "SQL Server 2008 công cụ"SQL2008RelNoteTools "thay đổi tracking"

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

Thuộc tính

ID Bài viết: 956176 - Xem lại Lần cuối: 06/06/2012 23:14:00 - Bản sửa đổi: 1.0

Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core

  • kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtvi
Phản hồi