180510 最近踩過和聽過的sql的坑

2021-09-07 18:14:56 字數 798 閱讀 6992

1. in的巨坑

create

table #tmp1 (id int, value int

)create

table #tmp2 (id1 int, value int

)insert

into #tmp1 values ( 1,1),(2,2),(3,3

)insert

into #tmp2 values ( 4,1),(5,2),(6,3

)select

*from #tmp1 where id in (select id from

#tmp2)

drop

table #tmp1,#tmp2

#tmp2沒有id這個列,但是 where id in (select id from #tmp2)沒有報錯,而且執行成功。sql廢掉了聯合查詢的關鍵字查詢(見下圖),select 那句等同於沒有where過濾。如果是delete,坑死你沒商量。

2. uniqueidentifier的坑

declare

@iduniqueidentifier

set@id='

78dc3f2c-50e3-49fa-b96c-b98cb5d2de0d select * from #tmp1

'select

@id

手動拼接sql時,踩出來的雷。少了乙個反單引號。然後,就沒有然後了。後面的邏輯全部作廢。

我踩過的聽過的那些坑

題目是黃釗吉大牛出的,答案的自己寫的。1.sql server 最小儲存單元是什麼?多大?再上一層儲存單元是什麼?多大?答 sql server最小的儲存單位是頁 page 乙個頁的大小是8k 8192位元組。頁頭的大小是固定的96個位元組,所以剩下8192 96 8096個位元組用於儲存資料行和行...

在input 和raw put 踩過的坑

錯誤 tips 請輸入披薩配料 tips n 若輸入quit可退出 active true while active true message input tips if message quit active false else print message 使用者輸入值chicken後執行結果 ...

問題點 05 su 和 su 踩過的坑

使用su而不加上 這個引數,那麼,切換前的使用者的相關資訊還會存在,也就是當前切換的使用者所需要的環境變數不會生效 打個比方,切換前,你是esb使用者,你在.profile裡面新增了一些配置,但是當你切換到其他使用者時,再切換回來,如果你需要這些配置生效,那麼 上 1 普通使用者切換到root使用者...