SQL Server 2012 Denali là phiên bản tiếp theo của máy chủ cơ sở dữ liệu Microsoft. Có một số tính năng mới được thêm vào TSQL để thực hiện nhiệm vụ phổ biến dễ dàng hơn nhiều. Tôi sẽ chỉ cho cách sử dụng một số tính năng mới trong bài viết này. ~Trình tự~ Tạo ra một số, số tự động hay còn gọi là trình tự, là một nhiệm vụ chung trong một ứng dụng doanh nghiệp. Đối với một bảng duy nhất, bạn có thể xác định lĩnh vực nhận dạng. Nhưng, nếu bạn muốn có cơ sở dữ liệu số tuần tự rộng, sau đó bạn phải nghĩ ra một cái gì đó của chính mình trước khi SQL Server 2012. Một giải pháp cho vấn đề này là tạo ra một bảng có một số lĩnh vực có thể được sử dụng để lưu trữ các số thứ tự, sau đó sử dụng SQL để tăng nó mỗi khi sử dụng một. Trong SQL Server 2012, chúng ta có một giải pháp mới sử dụng trình tự.
Trang 1Sử dụng SQL Server 2012 T-SQL tính năng mới
SQL Server 2012 "Denali" là phiên bản tiếp theo của máy chủ cơ sở dữ liệu
Microsoft Có một số tính năng mới được thêm vào T-SQL để thực hiện nhiệm vụ phổ biến dễ dàng hơn nhiều Tôi sẽ chỉ cho cách sử dụng một số tính năng mới trong bài viết này
Trình tự
Tạo ra một số, số tự động hay còn gọi là trình tự, là một nhiệm vụ chung trong một ứng dụng doanh nghiệp Đối với một bảng duy nhất, bạn có thể xác định lĩnh vực nhận dạng Nhưng, nếu bạn muốn có cơ sở dữ liệu số tuần tự rộng, sau đó bạn phải nghĩ ra một cái gì đó của chính mình trước khi SQL Server 2012 Một giải pháp cho vấn đề này là tạo ra một bảng có một số lĩnh vực có thể được sử dụng để lưu trữ các
số thứ tự, sau đó sử dụng SQL để tăng nó mỗi khi sử dụng một Trong SQL Server
2012, chúng ta có một giải pháp mới - sử dụng trình tự
Tạo ra trình tự
Để tạo ra một chuỗi trong SQL Server 2012 là rất đơn giản Bạn có thể tạo ra nó với SQL Server Management Studio hoặc T-SQL
1. Tạo ra trình tự với SQL Server Management Studio
Trong cửa sổ Object Explorer trong SQL Server Management Studio, có một nút Sequences trong cơ sở dữ liệu -> [Tên cơ sở dữ liệu] -> lập trình Bạn có thể kích chuột phải vào nó để đưa lên menu ngữ cảnh, và sau đó chọn trình tự mới để mở cửa sổ trình tự mới Trong cửa sổ trình tự mới, bạn có thể xác định trình tự mới, như Tên Trình tự, sơ đồ trình tự, loại dữ liệu, chính xác, giá trị bắt đầu, bởi Tăng, vv Sau khi nhập tất cả các thông tin cần thiết, nhấn OK để lưu lại Các trình tự mới sẽ hiển thị trong Trình tự nút
2. Tạo ra chuỗi với T-SQL
Sau kịch bản T-SQL được sử dụng để tạo ra một chuỗi mới:
Collapse | Copy Code
CREATE SEQUENCE DemoSequence
START VỚI 1
Tăng 1;
Sử dụng trình tự
Mới NEXT VALUE FOR T-SQL từ khóa được sử dụng để có được số thứ tự tiếp theo từ một trình tự
Collapse | Copy Code
CHỌN GIÁ TRỊ CHO DemoSequence
Một điều tôi muốn đề cập ở đây là trình tự không hỗ trợ giao dịch, nếu bạn chạy kịch bản này:
Trang 2Collapse | Copy Code
BEGIN TRẦN
Chọn Next GIÁ TRỊ CHO dbo.DemoSequence
ROLLBACK TRAN
Bạn có thể thấy ngay cả những giao dịch được cuộn lại ở cuối Các NEXT VALUE
FOR vẫn sẽ trả lại số thứ tự tiếp theo Hành vi này là phù hợp với lĩnh vực nhận dạng
Trang dữ liệu
Một tình trạng phổ biến để hiển thị trang là cách để hiển thị số lượng lớn các dữ liệu trong DataGrid Trước đó, các lập trình viên thường sử dụng tính năng nhắn tin
của DataGrid để xử lý tình trạng này Vì vậy, bằng cách chọn một số trang khác nhau, tập hợp dữ liệu khác nhau được hiển thị trên màn hình Tuy nhiên, làm thế nào để lấy
dữ liệu từ cơ sở dữ liệu đa dạng Một nhà phát triển có thể:
1. Lấy tất cả các dữ liệu từ cơ sở dữ liệu, và sau đó để cho DataGrid để chỉ hiển thị các dữ liệu trang hiện tại
2. Lấy dữ liệu trang hiện tại từ cơ sở dữ liệu bằng cách sử dụng temp bảng
3. Lấy dữ liệu trang hiện tại từ cơ sở dữ liệu bằng cách sử
dụng ROW_NUMBER() chức năng
SQL Server 2012 cung cấp một cách thức mới để lấy dữ liệu trang hiện tại từ
cơ sở dữ liệu
Collapse | Copy Code
SELECT *
TỪ Khách hàng
TỰ DO CustomerID
OFFSET 10 ROWS
Lấy NEXT 10 hàng ONLY;
Các OFFSET từ khóa và FETCH NEXT từ khóa cho phép các nhà phát triển để chỉ lấy dữ liệu từ cơ sở dữ liệu phạm vi nhất định Nếu bạn so sánh mã này
vớiROW_NUMBER() chức năng được giới thiệu trong SQL Server 2008, bạn có thể thấy kịch bản này ngắn hơn và trực quan hơn
Collapse | Copy Code
SELECT *
TỪ (
SELECT ROW_NUMBER () OVER (ORDER BY khách hàng) AS sequencenumber, *
TỪ Khách hàng) AS temptable
Đâu sequencenumber> 10 và sequencenumber <= 20
Xử lý ngoại lệ
SQL Server 2005 giới thiệu TRY CATCH khối để xử lý ngoại lệ trong T-SQL Các TRY CATCH khối tương tự như bất cứ điều gì trong ngôn ngữ C #, ngoại trừ bạn cần luôn luôn nâng cao một ngoại lệ mới sau khi đánh bắt nó Không có cách nào để chỉ đơn giản tái ném nó
Một mẫu của T-SQL kịch bản với xử lý ngoại lệ trong SQL Server 2005:
Collapse | Copy Code
Trang 3BEGIN TRY
BEGIN GIAO DỊCH - Bắt đầu giao dịch
- Xóa khách hàng
DELETE FROM khách hàng
Đâu EmployeeID = 'CACTU'
- Cam kết thay đổi
COMMIT GIAO DỊCH
END TRY
BEGIN CATCH
- Có một lỗi
NẾU @ @ TRANCOUNT> 0
ROLLBACK GIAO DỊCH
- Nâng cao một lỗi với các chi tiết của các ngoại lệ
DECLARE @ ERRMSG nvarchar (4000), @ ErrSeverity int
SELECT @ ERRMSG = ERROR_MESSAGE (),
@ ErrSeverity = ERROR_SEVERITY () RAISERROR (@ ERRMSG, @ ErrSeverity, 1)
END CATCH
Trong SQL Server 2012, bằng cách sử dụng Throw từ khóa, kịch bản trên sẽ được thay đổi như sau:
Collapse | Copy Code
BEGIN TRY
BEGIN GIAO DỊCH - Bắt đầu giao dịch
- Xóa khách hàng
DELETE FROM khách hàng
Đâu EmployeeID = 'CACTU'
- Cam kết thay đổi
COMMIT GIAO DỊCH
END TRY
BEGIN CATCH
- Có một lỗi
ROLLBACK GIAO DỊCH
- Re ném ngoại lệ
THROW
END CATCH
Ngoài ra, bạn có thể sử dụng Throw để thay thế RAISERROR chức năng:
Collapse | Copy Code
THROW 51000, "Biên bản không tồn tại ', 1;
Tăng cường EXECUTE từ khóa
Các EXECUTE từ khóa được sử dụng để thực hiện một chuỗi lệnh Các phiên bản trước SQL Server chỉ có WITH RECOMPILE tùy chọn để buộc kế hoạch mới được tái biên soạn SQL Server 2012 được cải thiện đáng kể phần này Phần tùy chọn là như thế này ngay bây giờ
Trang 4Collapse | Copy Code
[VỚI <execute_option> [, n]]
<execute_option> :: =
{
Biên dịch lại
| {KẾT QUẢ TẬP UNDEFINED}
| {BỘ KẾT QUẢ NONE}
| {BỘ KẾT QUẢ (<result_sets_definition> [, n])}
}
<result_sets_definition> :: =
{
(
{Column_name data_type [Đối chiếu collation_name]
[NULL | NOT NULL]}
[, N]
)
| AS VẬT
[Db_name [Schema_name] | Schema_name ] {Tên_bảng | view_name | table_valued_function_name}
| AS LOẠI [schema_name.] Table_type_name
| AS FOR XML
}
Cách sử dụng các tùy chọn bổ sung mới là như thế này:
Collapse | Copy Code
EXEC CustOrderDetail '2 '
VỚI BỘ KẾT QUẢ
(
(
ProductName1 varchar (100),
Unitprice1 varchar (100),
Quantity1 varchar (100),
Discount1 varchar (100),
ExtendedPrice1 varchar (100)
)
);
Nhận Siêu dữ liệu
Ứng dụng đôi khi cần cái nhìn sâu sắc hơn của tập kết quả kịch bản SQL Trong quá khứ, bạn cần phải viết một kịch bản phức tạp để truy vấn bảng hệ thống hoặc quan điểm, ví dụ như sys.objects , để có được tất cả các thông tin Trong SQL Server
2012, hệ thống mới được lưu trữ thủ tục sp_describe_first_set làm cho công việc tầm thường
Collapse | Copy Code
sp_describ_first_result_set @ TSQL = N'SELECT * FROM khách hàng
Tóm tắt
Trang 5Có nhiều tính năng T-SQL mới trong SQL Server 2012 sắp tới Phần lớn trong số họ được thiết kế để nâng cao hiệu quả phát triển và làm giảm nỗ lực phát triển
Đoạn Surround và tính năng trong SQL Server 2012
Giới thiệu
SQL Server 2012 Management Studio bây giờ trông như Visual Studio Nó hiện nay bao gồm nhiều tính năng hơn để thu hút các nhà phát triển VS
Trong bài viết này chúng tôi sẽ có một cái nhìn tại hai cải tiến mới: các tùy chọn trình đơn Insert số câu liên quan và Menu vòm với các tùy chọn
Sử dụng mã
Chèn đoạn
Chèn số câu liên quan cho phép chúng ta tạo ra các cấu trúc cơ bản của một tuyên bố Transact-SQL hoặc khối
Bắt đầu
Để bắt đầu một số câu liên Insert, kích chuột phải vào SQL Server Management Studio Script Pane và chọn Insert số câu liên quan hoặc nhấn Ctrl + K / Ctrl + X
Bạn có thể dễ dàng tạo ra câu lệnh T-SQL để tạo ra chức năng, chỉ số, Đăng nhập, vai trò, lược đồ, Thủ tục lưu trữ, đồng nghĩa, bảng, và các nút bấm
Chúng ta hãy lấy một ví dụ cho việc tạo ra một bảng
Trang 6Chọn tùy chọn Create Table.
Các mã được tạo ra như sau:
Collapse | Copy Code
CREATE TABLE dbo.Sample_Table
(
column_1 int NOT NULL,
column_2 int NULL
);
Nó rất hữu ích cho việc tạo ra ví dụ đơn giản cho mục đích thử nghiệm
Tôi xem xét lại các thủ tục lưu trữ và nó tạo ra mã cho ba kịch bản: những kịch bản này là thủ tục lưu trữ cơ bản, thủ tục lưu trữ với con trỏ và Thủ tục lưu trữ với các thông số đầu ra
Các mã được tạo ra là khá đơn giản và hữu ích:
Collapse | Copy Code
THỦ TỤC TẠO dbo.Sample_Procedure
@ Param1 int = 0,
@ Param2 int
AS
SELECT @ param1, param2 @
TRẢ LẠI 0
Bao quanh với tùy chọn
Tùy chọn mới khác là Surround với
Trang 7Các vòm sẽ cho phép chúng tôi tạo ra BEGIN END khoản, trong khi đó vòng lặp, và
IF điều kiện dễ dàng
Để kích hoạt tùy chọn này, kích chuột phải vào SQL Server Management Studio Script Pane và chọn Surround với hoặc nhấn Ctrl + K / Ctrl + S
Collapse | Copy Code
'' BEGIN END: BEGIN END '' Nếu tình trạng '' IF (Điều kiện) BEGIN END '' Trong khi vòng lặp while (điều kiện) BEGIN END