Tải bản đầy đủ (.docx) (7 trang)

Tìm hiểu về SQL Server 2012 TSQL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (228.59 KB, 7 trang )

Sử 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
một trình tự.

FOR

T-SQL từ khóa được sử dụng để có được số thứ tự tiếp theo 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:


Collapse | 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


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
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ờ.


Collapse | 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


Có 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.


Chọ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
@ Param1
@ Param2
AS
SELECT @
TRẢ LẠI 0

dbo.Sample_Procedure
int = 0,
int
param1, param2 @

Bao quanh với tùy chọn

Tùy chọn mới khác là Surround với.


Cá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




×