Làm thế nào để tạo một kiểu dữ liệu và làm cho nó có sẵn trong tất cả các Cơ sở dữ liệu?


7

Nếu tôi tạo một thủ tục được lưu trữ trong cơ sở dữ liệu chủ và tôi muốn thực thi nó từ bất kỳ cơ sở dữ liệu nào của mình, tôi chỉ cần theo liên kết sau:

Làm cho một thủ tục có sẵn trong tất cả các cơ sở dữ liệu

cho tôi ví dụ mã này:

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

Chỉ cần làm theo ví dụ trên, tôi có thể gọi thủ tục của mình từ bất kỳ cơ sở dữ liệu nào.

Nếu tôi tạo một kiểu dữ liệu bảng trong master, làm thế nào tôi có thể sử dụng nó trong bất kỳ cơ sở dữ liệu nào của tôi?

use master

        IF NOT EXISTS (select * from sys.types where name = 'theReplicatedTables') 
                CREATE TYPE theReplicatedTables AS TABLE 
                (  OBJ_ID INT NOT NULL,
                  PRIMARY KEY CLUSTERED (OBJ_ID)
                );

use APIA_Repl_Sub
go
declare @the_tables [dbo].[theReplicatedTables]

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

Câu trả lời:


6

Không có cách nào để làm điều đó với các loại bảng. Bạn sẽ cần phải nhân rộng điều đó trong tất cả các cơ sở dữ liệu. Nhưng, nếu bạn muốn loại bảng này có sẵn trong khi tạo cơ sở dữ liệu mới, bạn chỉ cần thêm nó vào cơ sở dữ liệu mô hình. Có một vài hạn chế đối với việc sử dụng các tham số có giá trị bảng. Bạn thậm chí không thể sử dụng các tham số có giá trị bảng trên cơ sở dữ liệu. Kiểm tra một số chi tiết ở đây .


5

Các loại không có khả năng vượt qua ngưỡng cơ sở dữ liệu hoặc được đánh dấu là hệ thống. Vì vậy, bạn sẽ cần tạo loại đó trong mỗi cơ sở dữ liệu mà bạn muốn sử dụng nó. (Tôi không phải là một fan hâm mộ lớn khi dựa vào những thứ như dữ liệu hoặc loại chính, bởi vì chúng biến mất khi bạn chuyển sang một hệ thống khác.)

Đối với cơ sở dữ liệu hiện có, bạn chỉ có thể tạo kiểu trong một vòng lặp. Đối với cơ sở dữ liệu mới (thông qua CREATE DATABASE), tạo kiểu trong model.

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.