Breaking News
Loading...
02/06/2014

Những hiểu nhầm khi làm việc với SQL Server

Khi lập trình T-SQL, có những cái tôi nghĩ mình đúng nếu chỉ nói suông về mặt lý thuyết, nhưng khi làm thực tế thì khác.

1. Xem xét đoạn SQL Script sau:
create table xxx (i int identity, a varchar(3))
go
declare @txt varchar(255)
set @txt = 'Question'
select @txt = isnull (a, '?') from xxx order by i
insert xxx values ('of')
insert xxx values ('the')
insert xxx values ('day')
select @txt = @txt + ' ' + a from xxx order by i
select @txt

Ban đầu tôi nghĩ kết quả chung cuộc là '? of the day', nhưng câu trả lời là 'Question of the day'. Lý do là nếu câu lệnh không trả về giá trị, nó sẽ giữ nguyên giá trị ban đầu

Tham khảo: http://msdn.microsoft.com/en-us/library/ms187330.aspx

2. Khi sử dụng count
  • Nếu count(*): nó sẽ đếm những cột có giá trị NULL
  • nếu count(tên cột) nó sẽ không đếm những cột có giá trị NULL
http://msdn.microsoft.com/en-us/library/ms175997.aspx

3. Khi so sánh với giá trị NULL, cần nhớ về SET ANSI_NULLS.
http://technet.microsoft.com/en-us/library/ms191270(v=sql.105).aspx

0 comments:

Post a Comment

 
Toggle Footer