Bảng Tạm Và Biến Kiểu Bảng Trong SQL SERVER
Có thể bạn quan tâm
Bảng tạm (temporary table) và biến kiểu bảng (table variable) là 2 phương tiện để lưu dữ liệu tạm thời khi đang xử lý.
Bảng tạm có tên bắt đầu bằng dấu “#”, bạn có thể tạo bảng tạm bằng lệnh CREATE TABLE và khai báo các cột của nó; hoặc bạn có thể vừa tạo và thêm dữ liệu vào bằng SELECT INTO. Với biến kiểu bảng thì bạn phải khai báo trước mới có thể dùng được, và khi khai báo bạn phải định nghĩa các cột của nó: --tạo bảng trực tiếp CREATE TABLE #t1 (C VARCHAR(50)) --vừa tạo bảng và thêm dữ liệu vào SELECT C INTO #t2 FROM dbo.SomeTable --khai báo biến kiểu bảng DECLARE @t TABLE(C VARCHAR(50)) INSERT INTO @t SELECT 1 SELECT * FROM @t Bảng tạm khai báo ở trên gọi là bảng tạm cục bộ (local temp table), SQL Server còn cung cấp bảng tạm toàn cục (global temp table) với tên bắt đầu bằng hai dấu “##”. Trong bài viết này khi nhắc đến bảng tạm là tôi chỉ nói về bảng tạm cục bộ, vì bạn sẽ chủ yếu dùng đến loại này.Cả bảng tạm và biến kiểu bảng chỉ tồn tại trong phạm vi (scope) mà chúng được tạo. Khi bạn tạo chúng trong thủ tục, chúng sẽ tự động bị xóa sau khi thủ tục thực hiện xong. Nếu bạn tạo chúng trong đoạn SQL động bên trong thủ tục, chúng cũng được xóa sau khi đoạn SQL động thực hiện xong. CREATE PROC dbo.p1 AS BEGIN CREATE TABLE #t1(C VARCHAR(10)) INSERT INTO #t1 SELECT 'abc' END EXEC dbo.p1 SELECT * FROM #t1 --lỗi, #t1 không tồn tại nữa CREATE PROC dbo.p2 AS BEGIN DECLARE @SQL VARCHAR(1000) SELECT @SQL = 'DECLARE @t TABLE(C VARCHAR(10)) INSERT INTO @t SELECT 1 ' EXEC(@SQL) SELECT * FROM @t --lỗi, biến @t không tồn tại nữa END Cả bảng tạm và biến kiểu bảng đều được lưu trong tempdb, chúng được lưu trong bộ nhớ khi có đủ chỗ và bị đẩy ra đĩa cứng khi cần thiết. Vì thế việc truy xuất biến kiểu bảng không có gì nhanh hơn so với bảng tạm.Vì cả bảng tạm và biến kiểu bảng chỉ tồn tại trong phạm vi chúng được khai báo, nên tên của chúng cũng chỉ có ý nghĩa trong phạm vi đó. Nếu bạn mở hai cửa sổ trong Management Studio và ở cả hai cửa sổ bạn tạo bảng tạm có tên #t, SQL Server sẽ không phàn nàn gì vì chúng thuộc hai phạm vi khác nhau (vì thế bảng tạm kiểu này gọi là bảng tạm cục bộ). Tương tự cùng một thủ tục được gọi đồng thời nhiều lần từ ứng dụng, dù thủ tục tạo cùng một tên bảng tạm nhưng mỗi lần gọi đều thuộc một phạm vi riêng nên không có xung đột gì về tên bảng.Về thực chất, SQL Server khi tạo bảng tạm trong tempdb sẽ thêm một chuỗi định danh vào tên bảng để đảm bảo nó duy nhất và chỉ phạm vi tạo bảng đó có thể truy xuất được bảng này. Bạn có thể xem các bảng tạm hiện có trong hệ thống bằng lệnh sau: SELECT * FROM tempdb.INFORMATION_SCHEMA.tables ORDER BY TABLE_NAME Ngoài các bảng tạm hệ thống, bạn sẽ thấy các bảng tạm do người dùng tạo với tên kiểu như “#t______A145G”.Bạn có thể truy vấn bảng tạm và biến kiểu bảng giống như đối với bảng thông thường, bạn có thể JOIN với chúng, dùng subquery… Bạn cũng có thể INSERT, UPDATE, hoặc DELETE các bản ghi trong bảng tạm và biến kiểu bảng. Đi vào chi tiết hơn, bảng tạm và biến kiểu bảng có những đặc điểm khác biệt, và những đặc điểm này giúp bạn quyết định dùng cái nào thích hợp hơn.• Bạn có thể xóa (DROP TABLE) bảng tạm và tạo lại ngay trong cùng một thủ tục, nhưng bạn không thể làm như vậy với biến kiểu bảng, vì nó là một biến nó sẽ tồn tại đến khi thủ tục thực hiện xong. • Bạn có thể tạo index cho các cột của bảng tạm và tạo khóa primary key, unique key cho nó, nhưng bạn không thể làm vậy với biến kiểu bảng. Đây là ưu thế vượt trội của bảng tạm khi cần xử lý lượng dữ liệu lớn và chạy các câu lệnh phức tạp. Chỉ có khóa ngoại là không được tạo trên bảng tạm (ở bản SQL 2008).• Bạn có thể TRUNCATE bảng tạm nhưng chỉ có thể DELETE biến kiểu bảng. Khi cần xóa một lượng dữ liệu lớn, bảng tạm sẽ có ưu thế hơn.• Khi bạn có thủ tục cha gọi một thủ tục con, bảng tạm tạo trong thủ tục cha sẽ được nhìn thấy trong thủ tục con. Thủ tục con có thể truy vấn và cập nhật dữ liệu trong bảng này, và khi quay về thủ tục cha nó vẫn nhìn thấy dữ liệu đã cập nhật. Đây là một cách hữu hiệu để trao đổi dữ liệu giữa các thủ tục. Ví dụ, tôi tạo hai thủ tục p1 và p2, và trong p1 tôi có lời gọi đến p2: CREATE PROC dbo.p1 AS BEGIN IF OBJECT_ID('tempdb..#t1') IS NOT NULL DROP TABLE #t1 CREATE TABLE #t1(i INT) INSERT INTO #t1 SELECT 1 SELECT * FROM #t1 -- chỉ có 1 bản ghi insert bởi p1 EXEC p2 SELECT * FROM #t1 --có thêm bản ghi insert bởi p2 END go ALTER PROC dbo.p2 AS BEGIN INSERT INTO #t1 SELECT 2 END EXEC dbo.p1 -- nhận được 2 bản ghi Kết quả của đoạn lệnh trên là 2 bản ghi insert bởi p1 và p2. Đối với biến kiểu bảng thì không làm được như vậy. Nếu không thấy biến được khai báo, thủ tục sẽ báo lỗi ngay từ khi biên dịch.• Bảng tạm luôn kèm theo statistics là các thông tin trợ giúp việc tối ưu hóa thực hiện. Đây là một overhead khi dùng bảng tạm. Vì thế khi phương án thực thi tối ưu không phụ thuộc nhiều vào lượng dữ liệu tạm, nói cách khác statistics của bảng tạm không có tác dụng gì, bạn nên dùng biến kiểu bảng.• Khi viết hàm, vì hàm không cho phép dùng bảng tạm nên bạn chỉ có một lựa chọn là biến kiểu bảng.
Topics: Công nghệ mới Quản trị cơ sở dữ liệu SQL
About Học viện đào tạo trực tuyến
Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: [email protected] . - Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng . - Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu... HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG. «Next
Bài đăng Mới hơn
»Previous
Bài đăng Cũ hơn
Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủBài đăng nổi bật
Khóa Đào Tạo Hacker Mũ Trắng
Nhấn vào đây để bắt đầu khóa học Giúp học viên tìm hiểu cơ bản bản chuyên sâu kỹ năng hack website, sever, email, sms, facebook... Khóa...
Tuyển tập hay nhất
Khóa học trực tuyến
Truy cập nhiều nhất
-
Hướng dẫn về ASP.NET MVC và Action Result Nếu bạn đã từng làm việc trong một dự án ASP.NET MVC thì chắc chẳng còn xa lạ gì với khái niệm Action result mà ASP.NET MVC đã và đang cung... -
Hướng dẫn sử dụng phần mềm Anki - Học tiếng anh hiệu quả nhất Anki là một phần mềm được thiết kế để giúp bạn ghi nhớ các sự kiện, từ ngữ (chẳng hạn như từ ngữ trong một ngôn ngữ nước ngoài) một cách ... -
Cách dùng Termux để cài phần mềm Hack trên điện thoại Android Mục lục bài viết Termux là gì? Cách cài đặt Có thể dùng Termux để Hack không? Cách cài đặt các công cụ hack trên Termux Cài NMAP – Công cụ ...
-
Apple tung video quảng cáo độ bền và camera của iPhone 11 Pro Apple vừa tung hai đoạn video ngắn để quảng cáo cho độ bền và 3 camera trên iPhone 11 Pro . Bạn sẽ thấy là iPhone 11 Pro bị ném nh...
-
Phần mềm Bizagi Thiết kế, quản lý dữ liệu dự án cho doanh nghiệp Bizagi Modeler được thiết kế để diễn đạt hệ thống ký hiệu mô hình hóa tiến trình nghiệp vụ BPMN theo cấu trúc dự án, tiến tới mục tiêu tăng ... -
108 câu hỏi trắc nghiệm và đáp án môn Quản Trị Mạng Câu hỏi và đáp án Câu 1. Địa chỉ IP có độ dài bao nhiêu bit và được phân thành bao nhiêu lớp? a. 32 bit, 4 lớp (A, B,C,D) ... -
Giới thiệu cơ sở dữ liệu AdventureWorks Trước đây, khi nói tới cơ sở dữ liệu ví dụ của Microsoft chúng ta sẽ nghĩ ngay tới CSDL Northwind , tuy nhiên từ khi giới thiệu SQL Server... -
Bí kíp giúp ‘Bố già’ Tokuda giữ được sự sung mãn, đóng 400 phim JAV suốt 20 năm dù đã gần 90 tuổi Diễn viên JAV Shigeo Tokuda cho rằng tuổi tác không hoàn toàn là vấn đề, xứng đáng danh hiệu "Made in Japan- gần 90 năm vẫn chạy tốt...
-
Trên tay Xiaomi Mi CC9 Pro: camera 108MP và pin 5260mAh Mi CC9 Pro chính là Mi Note 10 ở thị trường quốc tế, chiếc máy có camera 108MP mới được Xiaomi giới thiệu. Ngoài camera khủng thì...
-
symfony-Làm việc với dữ liệu Trong Doctrine bạn có thể lấy một kết quả phức tạp từ RDBMS và chuyển chúng vào một mảng hay object mô tả cấu trúc quan hệ của bạn. Điều nà...
Tin công nghệ
Download
Danh mục bài viết
- 3ds Max
- access
- Adobe Illustrator
- AI
- android
- Articulate Storyline
- autoit
- Bài thuốc
- Cây xanh
- Cây xanh trong nhà
- CI Framework
- Clip ca nhạc
- Công nghệ Mobile
- Công nghệ mới
- Công nghệ số
- css
- DotnetNuke
- Download
- Đào tạo CorelDraw chuyên nghiệp
- Đào tạo photoshop chuyên nghiệp
- Định hướng lập trình
- Đọc sách
- excel
- Foxpro
- Giải pháp excel chuyên nghiệp
- Giải trí
- Giáo dục
- Giới thiệu Phần mềm
- Google Apps Script
- Google Docs
- Google drive
- Google Sheets
- Google Slide
- HAcker
- Hàng khuyến mại
- hay
- Hệ thống Elearning Moodle
- Học tiếng anh
- Học từ Youtobe
- html
- Hướng dẫn xây dựng và quản lý JOOMLA
- Imacro
- ios apple
- Iphone
- Khoa học dữ liệu
- Khóa học hay
- Khóa học trực tuyến
- Kiểm thử phần mềm
- Kiến thức cơ bản
- Kiến thức cuộc sống
- Kinh doanh
- Kỹ năng
- lập trình
- Lập trình .NET
- Lập trình AngularJS
- Lập trình assembly
- Lập trình di động
- Lập trình Java
- Lập trình Javascript
- Lập trình Nodejs
- Lập trình PHP
- Machine Learning
- Microsoft Teams
- MP3
- Nấu ăn
- Nét xinh
- Ôn luyện thi chứng chỉ MOS
- phần cứng
- Phần mềm cho Bé và Cha mẹ
- PHP tool
- powerpoint
- Python
- Quản trị cơ sở dữ liệu SQL
- Quản trị dự án-công việc hiệu quả
- Quản Trị Mạng
- Sách nói
- Sách nổi tiếng - Best Seller
- Sáng tạo
- SEO-Tối ưu công cụ tìm kiếm
- skype
- SPSS
- Suy ngẫm hay
- Sức khỏe
- Symfony Framework
- tết
- Thiết kế đồ họa
- Tin hay
- Tin học Văn phòng
- Toeic 500-700
- Tranh treo
- Unity 3D
- vba
- visio
- web
- word
- wordpress
- Xây dựng bài giảng điện tử
- zalo
Nhóm Zalo CÔNG NGHỆ
Hiện nay có rất nhiều công việc mà bất cứ ai cũng có thể làm tốt khi không yêu cầu quá nhiều kiến thức chuyên môn, như: Bán hàng chẳng hạn. Ngồi một chỗ, với điện thoại và laptop là bạn có thể bán hàng 63 tỉnh thành, thậm chí toàn thế giới. Còn nếu bạn chưa biết bán hàng sao cho hiệu quả thì vào nhóm: HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN. Bảo hiểm nhân thọ - bảo vệ người trụ cột
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN-TẬN TÂM-CHẤT LƯỢNG © 2014. All Rights Reserved. Designed by [email protected] Tel: 098 909 5293
Pages
Từ khóa » Khai Báo Biến Bảng Trong Sql
-
Biến Table Trong SQL Server - Freetuts
-
Khai Báo Biến Trong SQL Server
-
Chi Tiết Cách Tạo Và Sử Dụng Biến Bảng Trong SQL Server - YouTube
-
Tạo Biến Bằng Lênh DECLARE Trong SQL Server - Chickgolden
-
Khai Báo Biến Trong Sql - Ruby
-
Tổng Quan Về Biến Bảng SQL
-
Làm Thế Nào để Sử Dụng Biến Bảng Trong Một Câu Lệnh Sql động?
-
Variable - Biến - SQL & Database
-
Function Trong SQL Server: Hướng Dẫn Từ A-Z Về Function
-
Khai Báo Biến Trong SQL Server - Vay Tiền Online Bằng CMND
-
Stored Procedure Trong SQL Server
-
[PDF] Chương 6 Ngôn Ngữ T-SQL - FIT@MTA
-
Tạo Bảng Với CREATE TABLE Kiểu Dữ Liệu Cột Trong SQL