Làm thế nào để tạo bảng mới với cùng các ràng buộc và chỉ mục?


8

Tôi đang tạo một bảng mới với các ràng buộc khóa chính và một chỉ mục không được nhóm trong bảng đó.

Tôi biết, tôi muốn tạo một bảng khác có cùng cấu trúc và giá trị cũng như các khóa và chỉ mục.

create table Dummy (id integer ,name varchar(20),salary integer
Constraint PK_Con_id primary key(id))

insert into Dummy values(11,'AAA',1000);
insert into Dummy values(12,'BBB',2000);
insert into Dummy values(13,'CCC',3000);
insert into Dummy values(14,'DDD',4000);

select * from Dummy;

create nonclustered index IX_Name 
on Dummy(Name)

Bây giờ tôi đang tạo Dmybảng nhưng Khóa và ràng buộc không phản ánh trong Dmybảng trong SQL Server 2008 R2.

SELECT * 
INTO Dmy 
FROM Dummy

Câu trả lời:


14

CHỌN VÀO sẽ không làm điều này cho bạn, bởi vì trong khi nó duy trì tên cột và kiểu dữ liệu, nó không giữ được nhiều khía cạnh khác của bảng, chẳng hạn như các ràng buộc, chỉ mục, v.v. giữ bên ngoài các cột là thuộc tính IDENTITY nếu một trong các cột có nó.

Bấm chuột phải vào bảng gốc trong Object Explorer và chọn Bảng Script là> Tạo thành> Cửa sổ truy vấn mới. Bạn nên có tập lệnh CREATE TABLE cho bảng gốc, bao gồm tất cả các ràng buộc, v.v ... Lưu ý rằng bạn có thể phải đặt một số cài đặt này (Công cụ> Tùy chọn> SQL Server Object Explorer> Scripting) để có được tất cả các thuộc tính bảng bạn muốn, do đó, điều này có thể mất một số thử nghiệm và lỗi:

tùy chọn trong Công cụ> Tùy chọn> SQL Server Object Explorer> Scripting

Bây giờ, chỉ cần sửa đổi tập lệnh đó để chỉ định tên bảng mới và đảm bảo điều chỉnh tất cả các ràng buộc và tên chỉ mục sao cho chúng là duy nhất (công việc này sẽ phụ thuộc vào việc bạn có quy ước đặt tên được thiết lập hay không nếu bạn chỉ lấy những gì SQL Server sẽ ném vào bạn).


5

Tất cả có thể được thực hiện trong SQL Server Management Studio.

Các Script Bảng Khi tùy chọn tạo tạo mã cho khóa chính trong và ngoài nước và trở ngại. Nó không tạo tập lệnh cho các chỉ mục, vì vậy bạn phải làm điều đó trong một bước khác. loại, tôi đề nghị mở rộng tất cả các nút loại đối tượng trong SSMS Object Explorer.

nhập mô tả hình ảnh ở đây

Để tạo tập lệnh cho cấu trúc bảng, khóa chính và khóa ngoài và các ràng buộc

  1. Chạy SQL Management Management Studio
  2. Trong Object Explorer , mở rộng cơ sở dữ liệu
  3. Mở rộng bảng
  4. Nhấp chuột phải vào bảng và chọn bảng Script là | TẠO ĐẾN | Cửa sổ soạn thảo truy vấn mới

nhập mô tả hình ảnh ở đây

Tập lệnh được tạo sẽ được hiển thị trong tab Trình soạn thảo truy vấn. Đảm bảo bạn thay đổi bảng, khóa chính và khóa ngoài và tên ràng buộc, vì các tên này phải là duy nhất.

Mặt khác, bạn sẽ nhận được thông báo lỗi có nội dung như 'Đã có một đối tượng có tên' Địa chỉ 'trong cơ sở dữ liệu.' hoặc 'Thao tác thất bại vì chỉ mục hoặc số liệu thống kê có tên' AK_Address_rowguid 'đã tồn tại trên bảng' Person.Address '.'

Để tạo tập lệnh cho chỉ mục

Sử dụng các bước tương tự như trên:

nhập mô tả hình ảnh ở đây

Để tạo tập lệnh INSERT INTO cho dữ liệu

  1. Nhấp chuột phải vào cơ sở dữ liệu (không phải bảng!)
  2. Nhiệm vụ mở | Tạo tập lệnh
  3. Trên tab Chọn đối tượng , chọn bảng để kịch bản

nhập mô tả hình ảnh ở đây

4. Trong tab Đặt tùy chọn tập lệnh , bấm Nâng cao và đảm bảo tùy chọn Loại dữ liệu thành tập lệnh được đặt thành Chỉ dữ liệu

Lưu ý: Nếu bạn chọn Lược đồ & Dữ liệu , tập lệnh lược đồ được tạo sẽ giống hệt với tập lệnh được tạo trong phương thức đầu tiên trong câu trả lời này.

nhập mô tả hình ảnh ở đây

5. Cập nhật tên bảng thành tên của bảng mới trước khi bạn thực thi tập lệnh


1

FOR Schema - Bảng, ràng buộc và khóa

  • Trong Object Explorer, chọn BẢNG (nói ABC)> Nhấp chuột phải vào nó
  • Sau đó chọn bảng Script là> TẠO ĐẾN> Cửa sổ Trình soạn thảo truy vấn mới
  • Bảng Tạo kịch bản cho ABC sẽ mở ra
  • Thay đổi tên bảng
  • Thay đổi PK
  • Thay đổi tên ràng buộc
  • Thay đổi tên chỉ mục
  • Bây giờ thực thi tập lệnh này, Bảng sẽ được tạo với cùng cấu trúc nhưng với tên khác ...

CHO chỉ số

  • Chọn Bảng ABC> Mở rộng nó
  • Chọn INDEX> Nhấp chuột phải vào INDEX NON CLUSTERED
  • Script Index AS> Tạo TO> Cửa sổ soạn thảo truy vấn mới
  • Thay đổi tên chỉ mục
  • Thực hiện trên bảng vừa tạo để tạo INDEX trên đó .....

CHO dữ liệu

  • Chọn tên cơ sở dữ liệu
  • Nhấp chuột phải vào nó
  • Chọn tác vụ> Tạo tập lệnh ...
  • Một cửa sổ mới sẽ mở ra
  • Chọn tiếp theo
  • Bây giờ chọn các đối tượng cơ sở dữ liệu cụ thể và chọn Bảng ABC
  • Chọn tiếp theo
  • Đi trước>
  • Đặt loại dữ liệu thành tập lệnh dưới dạng DATA
  • Sau đó OK> Tiếp theo> Tiếp theo> Kết thúc ....
  • Bây giờ Thực thi tập lệnh này trong bảng mới được tạo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.