Bảng Tạm Và Biến Kiểu Bảng Trong SQL SERVER

  • TIN MỚI
    • Kiến thức hay
    • Tin Công nghệ
    • Đánh giá công nghệ
    • Tiền của tôi
    • Số hóa
    • Tin Giáo dục
    • Tin Giải trí
    • Ngữ pháp tiếng anh
    • Kinh nghiệm học tiếng anh
    • Xem Phim
    • Kinh nghiệm
  • KHÓA HỌC CỦA BẠN
  • Tin học văn phòng
    • Khóa học Tuyệt đỉnh Power BI
    • Khóa học lập trình VBA Excel
    • Khóa dựng phần mềm quản lý bằng MS ACCESS
    • Đào tạo Excel 2010 chuyên nghiệp
    • Đào tạo Word 2010 chuyên nghiệp
    • Đào tạo Powerpoint 2010 Pro
    • Đào tạo vẽ Visio 2010 chuyên nghiệp
    • Chứng chỉ MOS
  • Ebook
  • Kỹ Năng Mềm
    • Học Excel
    • Thủ thuật Excel
    • Excel nâng cao
    • Excel VBA
    • Google Sheets
    • Học Word
    • Học PowerPoint
    • Học Access
  • Review Công nghệ
    • Đọc báo Song ngữ Anh- Việt
    • Tải Phần mềm
    • Hacker
    • Giải trí
    • Học tiếng anh
  • Lập trình
    • Đào tạo lập trình Foxpro
    • Đào tạo lập trình ACCESS 2010
    • Đào tạo Lập trình Excel
    • Lập trình Web
    • Đào tạo Lập trình PHP
    • Đào tạo lập trình Mobile
  • Tin công nghệ
    • Tin Bảo mật - An toàn thông tin
    • Giáo dục 4.0
  • Học đồ họa
    • Đào tạo photoshop chuyên nghiệp
    • Đào tạo CorelDraw chuyên nghiệp
  • Office
    • Đào tạo Excel 2013 của Microsoft
    • Đào tạo Word 2013 của Microsoft
    • Đào tạo Powerpoint 2013
    • Các chương trình khác
  • Học Online
    • Hướng dẫn Tiếng anh
    • Thực hành Tiếng anh chuẩn quốc tế
    • Thư viện khóa học
    • Thực hành Tiếng anh giao tiếp
    • Bài giảng điện tử
  • Công cụ hữu ích
    • Đọc số thành chữ
    • Tra cứu phím tắt Excel
    • Đọc công thức Excel Dễ hơn
    • Đếm số từ trong Văn bản
    • Đếm số ký tự trong Văn bản
    • Chuyển Văn bản thành Mp3
    • Tạo QrCode
    • Bộ soạn thảo trực tuyến
    • Bộ công cụ đặc biệt
    • Diễn đàn
  • Phiên âm chuẩn
  • SMS Free
  • HỌ ĐINH
Home » Công nghệ mới » Quản trị cơ sở dữ liệu SQL » Bảng Tạm và Biến Kiểu Bảng trong SQL SERVER Bảng Tạm và Biến Kiểu Bảng trong SQL SERVER

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.

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
  • facebook
  • 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Ệ

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

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