Các bảng tạm thời của SQL Server (có tiền tố #
) được hỗ trợ trong các phiên bản LocalDB không?
Các bảng tạm thời của SQL Server (có tiền tố #
) được hỗ trợ trong các phiên bản LocalDB không?
Câu trả lời:
Tôi không thể trả lời cho tất cả các phiên bản, nhưng đối với SQL Server 2012 cho đến SQL Server 2017 tôi chắc chắn rằng chúng được hỗ trợ
LocalDB có các tính năng lập trình tương tự như SQL Server Express.
SQL Server Express LocalDB, phiên bản nhẹ của Express có tất cả các tính năng lập trình của nó, nhưng vẫn chạy trong chế độ người dùng và có cài đặt nhanh, cấu hình không và một danh sách ngắn các điều kiện tiên quyết.
Và sau đó, dựa trên điểm trước đó, đối với SQL Server express 2012 T-SQL Cú pháp
Express hỗ trợ các yếu tố ngôn ngữ T-SQL giống như bạn tìm thấy trong bất kỳ phiên bản SQL Server nào. Bạn không chỉ có thể đưa ra các truy vấn ngôn ngữ thao tác dữ liệu đối với cơ sở dữ liệu mà còn có thể chạy các câu lệnh ngôn ngữ định nghĩa dữ liệu để tạo các đối tượng như khung nhìn, trình kích hoạt, con trỏ và các thủ tục được lưu trữ
Kiểm tra (SQL Server 2017)
USE testdb
GO
CREATE TABLE #temp (id int , value nvarchar(255));
INSERT INTO #temp( id ,value)
SELECT 5, 'bla';
SELECT * FROM #temp;
kết quả
id value
5 bla
Bảng tạm thời cũng hoạt động khi thay đổi chế độ tương thích của db thành 100 (2008).
Có, tất cả các dạng đối tượng tạm thời (bảng tạm thời cục bộ, bảng tạm thời toàn cầu, biến bảng, quy trình lưu trữ tạm thời cục bộ và quy trình lưu trữ tạm thời toàn cầu) đều có sẵn trong tất cả các phiên bản SQL Server Express LocalDB.
Tôi đã thực hiện thử nghiệm đơn giản sau đây cho từng loại trong số 5 loại đối tượng đó qua các phiên bản 2012, 2014, 2016 và 2017 và không nhận được lỗi nào.
CREATE TABLE #LocalTempTable (Col1 INT);
SELECT * FROM #LocalTempTable;
CREATE TABLE ##GlobalTempTable (Col1 INT);
SELECT * FROM ##GlobalTempTable;
DECLARE @TableVariable TABLE (Col1 INT);
SELECT * FROM @TableVariable;
GO
CREATE PROCEDURE #LocalTempProc
AS
SELECT 1;
GO
EXEC #LocalTempProc;
GO
CREATE PROCEDURE ##GlobalTempProc
AS
SELECT 2;
GO
EXEC ##GlobalTempProc;
Ngoài ra, SQL Server có thể thậm chí sẽ không khởi động nếu chúng không có sẵn vì chúng được sử dụng trong các thủ tục lưu trữ hệ thống, các tính năng được tìm thấy msdb
, v.v.
Có, Localdb hỗ trợ các bảng tạm thời.
USE [test];
GO
CREATE TABLE #mytemp
(
id int,
foo int,
bar int
);
GO
SELECT
*
FROM
tempdb.INFORMATION_SCHEMA.TABLES;
GO
DROP TABLE #mytemp;
GO
Trả về:
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
---------------- ---------------- ------------------------------------ ----------
tempdb dbo #mytemp________________00000000000A BASE TABLE
Và truy vấn sys.databases
:
SELECT
name,
database_id
FROM
sys.databases;
trả về cùng một cấu trúc cơ sở dữ liệu hệ thống.
name database_id
--------- -----------
master 1
tempdb 2
model 3
msdb 4
test 5
Đồng ý với @RandiVertongen.
Cài đặt LocalDB sao chép một tập hợp tối thiểu các tệp cần thiết để khởi động Công cụ cơ sở dữ liệu SQL Server. Khi LocalDB được cài đặt, bạn có thể bắt đầu kết nối bằng chuỗi kết nối đặc biệt. Khi kết nối, cơ sở hạ tầng SQL Server cần thiết sẽ tự động được tạo và khởi động, cho phép ứng dụng sử dụng cơ sở dữ liệu mà không cần các tác vụ cấu hình phức tạp. Công cụ dành cho nhà phát triển có thể cung cấp cho nhà phát triển Công cụ cơ sở dữ liệu SQL Server cho phép họ viết và kiểm tra mã Transact-SQL mà không phải quản lý phiên bản máy chủ đầy đủ của SQL Server.
Để biết thêm thông tin về LocalDB tham khảo nguồn liên kết chính thức
Lưu ý rằng nó có những hạn chế:
1) LocalDB không thể là thuê bao nhân rộng hợp nhất.
2) LocalDB không hỗ trợ FILESTREAM.
3) LocalDB chỉ cho phép hàng đợi cục bộ cho Nhà môi giới dịch vụ.
4) Một phiên bản LocalDB thuộc sở hữu của các tài khoản dựng sẵn như NT AUTHORITY \ HỆ THỐNG có thể có các vấn đề về quản lý do chuyển hướng hệ thống tệp windows; Thay vào đó sử dụng tài khoản windows bình thường như chủ sở hữu.
Tôi hi vọng cái này giúp được!