Danh mục tài liệu

Stored Procedure và T-SQL Nâng Cao

Số trang: 7      Loại file: pdf      Dung lượng: 130.02 KB      Lượt xem: 24      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo bài viết stored procedure và t-sql nâng cao, công nghệ thông tin, quản trị mạng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Stored Procedure và T-SQL Nâng Cao “Chuyên trang dành cho kỹ thuật viên tin học” CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬTStored Procedure và T-SQL Nâng Cao.Trong bài này chúng ta sẽ tìm hiểu một số cách import và export data trong SQL Server. Sau đó sẽ bànqua các loại Stored Procedure và Cursor.Sử dụng bcp và BULK INSERT để import databcp là một command prompt dùng để import hay export data từ một data file (Text file hay Excel File)vào SQL Server hay ngược lại. Thường khi muốn chuyển một số lượng lớn data từ một database systemkhác như Oracle, DB2...sang SQL Server trước hết ta sẽ export data ra một text file sau đó import vàoSQL Server dùng bcp command. Một trường hợp thông dụng hơn là ta export data từ SQL Server sangmột Microsoft Excel file và Excel file này có thể là input cho một program hay một database systemkhác.Chúng ta cũng có thể chuyển data vào SQL Server dùng câu lệnh BULK INSERT. Tuy nhiên BULKINSERT chỉ có thể import data vào trong SQL Server chứ không thể export data ra một data file nhưbcp.Ðể có thể insert data vào SQL Server Database, data file phải có dạng bảng nghĩa là có cấu trúc hàngvà cột. Chú ý khi data được bulk copy (copy hàng loạt dùng bcp hay BULK INSERT) vào một tabletrong SQL Server thì table đó phải tồn tại và data được cộng thêm vào (append). Ngược lại khi exportdata ra một data file thì một file mới sẽ được tạo ra hoặc data file sẽ bị overwrite nếu nó tồn tại.Cú pháp đầy đủ của lệnh bcp có thể xem trong SQL Server Books Online. Ở đây chỉ trình bày một số vídụ đơn giản về cách sử dụng bcp command và BULK INSERT.Ví dụ 1: Giả sử bạn muốn export data từ table Orders trong PracticeDB (đây là database được tạo ratrong bài tập số 1 ) ra một text file trong đó các cột được phân cách bằng dấu ;. Bạn có thể làm nhưsau: mở DOS command prompt và đánh vào dòng lệnh sau:bcp PracticeDB..Orders out c:Orders.txt -c –T –t;Trong ví dụ trên ta muốn bulk copy table Orders ra một text file trong đó :out: copy data từ table hay view ra một data file (c:Orders.txt). Ngược lại ta có thể dùng switch in đểimport data từ text file vào SQL Server.-c: bulk copy dùng kiểu dữ liệu Character (Char) (nếu không chỉ rõ thì SQL Server sẽ dùng TABcharacter ( ) để phân định các cột và dùng new line character ( ) để phân định các hàng như các giátrị default).-t;: dấu ; đi sau switch t cho biết ta muốn dùng ; để phân định các cột (nếu không sẽ dùng giá trịmặc định như trên)-T: dùng (NT) Trust connection để kết nối với database. Nghĩa là nếu user đã authenticated (cho phép)vào được Windows system thì đương nhiên được sử dụng SQL Server mà không cần dùng thêmusername và password nào khác.Ví dụ 2: Thay vì copy toàn bộ table ta có thể dùng query để select một phần data và export ra text filenhư sau: 1 of 7bcp Select * From practiceDB..Orders queryout c:Orders.txt -c -SVinhtai -Usa -PabcTrong ví dụ này ta select toàn bộ data trong Orders table ra một text file dùng query và SQL Serverauthentication.queryout : cho biết đây là một query chứ không phải là table.-S : tên của SQL Server (hay tên của một Instance)-U : SQL user name dùng để log on-P : password dùng để log on.Ví dụ 3 : dùng BULK INSERT để bulk copy data từ text file vào SQL Server database. Mở QueryAnalyser (BULK INSERT là một T-SQL command chứ không phải là một command prompt utility) vàđánh vào các dòng sau :BULK INSERT PracticeDB..Orders FROM c:Orders.txt WITH (DATAFILETYPE = CHAR)Trong ví dụ trên DATAFILETYPE= CHAR cho biết data được chứa dạng Char data type. Nêú muốndùng data type dạng unicode thì dùng WIDECHARChú ý: Các switch trong bcp command là case-sensitive. Nghĩa là chữ hoa và chữ thường sẽ có ý nghĩakhác nhau.Distributed QueriesÐôi khi chúng ta muốn select data từ những database system khác như MS Access, Oracle, DB2... haythậm chí từ một SQL Server khác ta cần phải dùng distributed query. SQL Server sẽ dùng kỹ thuậtOLEDB và các API để chuyển các query này tới các database system khác. Có 2 cách để truy cập vào cácdatabase system khác là dùng LINKED SERVER và Ad Hoc Computer Name.Linked Server:Linked Server là một server ảo được dùng để truy cập vào các database system khác. Một khi đã setupthì ta có thể query data dùng four-part name : linked_server_name.catalog.schema.object_name .Trong đó catalog thường tương đương với database name, Schema tương đương với database owner vàobject_name tương đương với table hay view.Ví dụ: Giả sử ta setup một Linked Server vào Access database PracticeDB.mdb trong đó các table đềutương tự như PracticeDB database trong SQL Server (được tạo ra trong phần bài tập số 1).Mở Enterprise Manager -> Chọn node Security của local server -> Right-Click lên node Linked Serverchọn New Li ...