2010-05-26 29 views
6

Tôi có một số cơ sở dữ liệu có liên quan là phiên bản-ed. Phiên bản của các phiên bản khác nhau có thể chạy song song, được xác định bởi các phiên bản khác nhau của chúng, nghĩa là [NorhwindV1.1] và [NorhwindV1.2] có thể nằm trên cùng một máy chủ, cùng với [SouthwindV1.1] và [SouthwindV1.2].Thay đổi tên cơ sở dữ liệu và truy vấn cơ sở dữ liệu chéo trong thủ tục được lưu trữ

Có một số thủ tục được lưu trữ thực hiện truy vấn cơ sở dữ liệu chéo, tức là tồn tại trên NorthwindV1.1 và cũng có các bảng truy vấn trong SouthwindV1.1. Cách tốt nhất để quản lý sự thay đổi trong tên cơ sở dữ liệu với thay đổi số phiên bản là gì, để các thủ tục lưu trữ truy vấn phiên bản đúng của cơ sở dữ liệu?

Cảm ơn, MagicAndi.

Trả lời

5

Giả sử số lượng các bảng truy vấn giữa các cơ sở dữ liệu được quản lý, bạn có thể tạo các từ đồng nghĩa cho những bảng và sử dụng các từ đồng nghĩa trong các thủ tục . Sau đó, bạn chỉ cần thay đổi các từ đồng nghĩa để chuyển đổi giữa các phiên bản.

http://msdn.microsoft.com/en-us/library/ms177544.aspx

+0

Joe, được chấp nhận làm câu trả lời. – MagicAndi

2

Chỉ có hai cách tôi biết và cả hai đều hút. Đầu tiên là sử dụng SQL động, như:

declare @db varchar(512) 
set @db = 'NorthwindV1.1' 

declare @sql varchar(max) 
set @sql = 'select * from ' + @db + '.dbo.YourTable' 
exec (@sql) 

Thứ hai là cài đặt nhiều phiên bản nếu SQL Server trên máy. Giống như localhost\v1.0, localhost\v1.1, v.v. Sau đó bạn có thể tạo một máy chủ liên kết mà bạn truy vấn như:

select * from linkedserver.northwind.dbo.YourTable 

Bây giờ bạn có thể thay đổi linkedserver để trỏ vào một trong localhost\v1.0, localhost\v1.1 và các thủ tục được lưu trữ sẽ làm theo.

tôi sẽ được xem câu hỏi này để xem gợi ý tốt hơn bật lên :)

+0

Cảm ơn Andomar, tôi đã không xem xét việc cài đặt nhiều phiên bản của máy chủ SQL. +1. – MagicAndi

1

Bạn có thể tạo chế độ xem trong mỗi cơ sở dữ liệu cho các bảng khác cần thiết. Các proc được lưu trữ sẽ tham chiếu các khung nhìn và các khung nhìn sẽ trỏ đến cơ sở dữ liệu "đúng".

Thậm chí bạn có thể tạo một TSQL được lưu trữ đơn giản để tạo ra các khung nhìn khi chúng cần được chuyển sang cơ sở dữ liệu mới.

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