Tải bản đầy đủ (.pdf) (5 trang)

Cách tạo Database bằng phpMyAdmin trên localhost- P6 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (328.83 KB, 5 trang )

(OPENXML trong SQL Server 2000) rồi chuyển
những giá trị văn bản đó sang một thủ tục hay lệnh.
Thao tác này yêu cầu thủ tục hay lệnh đó phải có
logic cần thiết cho việc tháo nhóm những giá trị và
làm cho những cấu trúc dữ liệu có hiệu lực, sau đó
tiến hành chèn các bản ghi. Quá nhiều thao tác cần
thực hiện nhưng lại không tối ưu, trong trường hợp
này chúng ta có thể sử dụng TVP để chuyển một
bảng dữ liệu gồm nhiều bản ghi từ ứng dụng .NET
sang SQL Server và chèn trực tiếp vào bảng mà
không phải thực hiện thêm bất kì thao tác nào tại máy
chủ này.

Hạn chế

1. UDTT tồn tại một số hạn chế, ví dụ nó không thể
sử dụng như một cột trong bản, định dạng bảng
không thể thay đổi sau khi đã được tạo, một giá trị
mặc định không thể được chỉ định trong định dạng
của UDTP, …

2. SQL Server không duy trì thống kê các cột của
TVP.

3. TVP phải được chuyển như những tham số
READONLY nhập vào sang những lệnh T-SQL.
Chúng ta không thể thực hiện các tác vụ DML như
UPDATE (cập nhật), DELETE (xóa), hay INSERT
(chèn) trên một TVP trong phần chính của lệnh. Nếu
cần phải thay đổi dữ liệu được chuyển tới một thủ tục
lưu trữ hay lệnh biểu hiện tham số trong TVP thì


chúng ta phải chèn dữ liệu đó vào một bảng tạm thời
bay một biến của bảng. Ngoài ra, chúng ta không thể
sử dụng các biến của bảng như các tham số OUTPUT
(kết xuất), mà chỉ có thể sử dụng như các tham số
INPUT (nhập vào).

Ví dụ

Trong ví dụ này chúng ta sẽ tìm hiểu phương pháp
tạo một kiểu bảng do người dùng định nghĩa, tạo một
biến của kiểu bảng này, chèn các bản ghi vào bảng và
chuyển nó tới thủ tục lưu trữ như một tham số TVP.

Trước tiên chúng ta sẽ tạo một bảng và chèn các bản
gi vào đó. Cấu trúc lệnh tạo bảng này như sau:
Tạo bảng lưu trữ thông tin khách hàng
CREATE TABLE [Customers]
(
[ID] [int] NOT NULL PRIMARYKEY
IDENTITY,
[FirstName] [varchar](100)NOT NULL,
[LastName] [varchar](100)NOT NULL,
[Email] [varchar](200) NOTNULL
)
GO
Chèn bản ghi vào bảng Customer
INSERT INTO [Customers] (FirstName,
LastName, Email)
VALUES('AAA','XYZ', '')
INSERT INTO [Customers] (FirstName,

LastName, Email)
VALUES('BBB','XYZ', '')
INSERT INTO [Customers] (FirstName,
LastName, Email)
VALUES('CCC','XYZ', '')
GO


Tiếp theo chúng ta sẽ tạo một UDTT khi đã tạo thành
công chúng ta có thể xem chi tiết bảng sử dụng hai
System Catalog View:
Tạo một UDTT lưu trữ các bản ghi khách hàng
CREATE TYPE [CustomersUDT] AS TABLE
(
[FirstName] [varchar](100)NOT NULL,
[LastName] [varchar](100)NOT NULL,
[Email] [varchar](200) NOTNULL
)
GO
Chúng ta có thể sử dụng các Catalog View để xem
bảng được tạo
SELECT name, system_type_id, user_type_id,
is_assembly_type, is_table_type FROM
SYS.TYPES WHERE is_table_type = 1
SELECT name, system_type_id, user_type_id,
is_assembly_type, is_table_type FROM
SYS.TABLE_TYPES
GO

×