中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

將不確(que)定變為確(que)定~SQLSERVER是(shi)否可(ke)以進行位運算?

回到目錄

有(you)(you)時,我(wo)們(men)在設(she)計表結構(gou)時,有(you)(you)的(de)(de)(de)字段可能同時具有(you)(you)幾種狀態(tai),如小微自己的(de)(de)(de)文(wen)件屬性(xing)也是屬于這種情況(kuang)的(de)(de)(de),“只讀,歸檔,隱藏”,但你(ni)對一(yi)個文(wen)件設(she)置屬性(xing)時,事實上(shang)是可以將這三個屬性(xing)同時賦(fu)予一(yi)個對象的(de)(de)(de),這對于我(wo)們(men)來(lai)說是正常的(de)(de)(de),那程序(xu)內(nei)部(bu)是怎么實現的(de)(de)(de)呢?

首先(xian)一個枚舉,SQL里可能是(shi)一張表,也可能是(shi)事先(xian)規定好(hao)的幾個值,如: 只讀1,歸檔2,隱藏3

再沒有(you)看.net源代碼時,我認為可能是這樣存(cun)儲的

文件屬性為只讀+歸檔,值為:1,2

我們看到它是用,分(fen)開的,然后(hou)再(zai)分(fen)別去求和就可以(yi)了

但(dan)當我看了(le)(le).net源代碼后,我的作法有(you)了(le)(le)一個變(bian)化,那就是(shi)利用位(wei)移(yi)運算(suan),應該(gai)說從性能到程序(xu)清晰(xi)度(du)上(shang)有(you)一個飛(fei)躍

文件屬性為只讀+歸檔,值為:3 (3=1+2)

當然我們需要在數據庫中查詢出包含歸檔(2)的屬性的記錄時,如何去實現呢

其實(shi),SQL與C#里(li)的位移運(yun)算符號是(shi)完全相(xiang)同的,它有以(yi)下幾種情況

1 update User_Info set Status = Status | 8  where UserID = 1  --更(geng)新user_info里(li)的(de)status字段,在原(yuan)有(you)基礎上增加8
2 
3 update User_Info set Status = Status & (~8) where UserID = 1 --更(geng)新(xin)user_info里(li)的status字段,在原(yuan)有(you)基礎上減去8,如果(guo)原(yuan)來(lai)的值中不包含8,那會在原(yuan)來(lai)的值上加(jia)上8 4 5 select * from User where Status & 8 >0 --找到(dao)所到(dao)包括(kuo)8的記(ji)錄

呵呵,怎么樣(yang),挺(ting)方便(bian)吧(ba),這只(zhi)是表面的,事(shi)實上,它在查(cha)詢上性能也(ye)遠遠高于(yu)第一種(zhong)拼(pin)接字符的方法(fa)。

回到目錄

posted @ 2012-08-10 11:11  張占嶺  閱讀(1371)  評論(6)    收藏  舉報