Tôi có một truy vấn đơn giảnCác câu lệnh SQL được thực thi như thế nào trong SQL Server Management Studio với GO và không có câu lệnh GO?
CREATE TABLE #tempTable (id int)
DROP TABLE #tempTable
CREATE TABLE #tempTable (id int)
DROP TABLE #tempTable
Từ sự hiểu biết của tôi, trong phần thứ hai, cần tạo ra các #tempTable
.
Nhưng nó cho thấy các lỗi sau
Msg 2714, Level 16, State 1, Line 4
Đã có một đối tượng tên là '#tempTable' trong cơ sở dữ liệu.
Tôi đã tìm kiếm nguyên nhân và phát hiện ra rằng đó là vì một tuyên bố GO
giữa hai phần của truy vấn. Do đó, câu hỏi đúng là
CREATE TABLE #tempTable (id int)
DROP TABLE #tempTable
GO
CREATE TABLE #tempTable (id int)
DROP TABLE #tempTable
Tôi cũng đã phát hiện ra rằng GO
chỉ nói với SSMS để gửi câu lệnh SQL giữa mỗi GO
theo lô cá nhân theo tuần tự.
Câu hỏi của tôi là, các câu lệnh SQL được thực thi như thế nào? Nó không được thực hiện tuần tự?
Nếu nó thực hiện tuần tự, thì tại sao truy vấn đầu tiên của tôi gây ra lỗi?
'GO' là ** không ** một câu lệnh SQL - đó là một loạt tách ** ** được xác định bởi công cụ Management Studio GUI. –
Cảm ơn thông tin :) –