Re: [問題] 詢問這組SQL為什麼要分SELECT和WHERE兩段

看板C_Sharp (C#)作者 (曼尼)時間12年前 (2013/07/19 00:02), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串3/5 (看更多)
※ 引述《bernachom (Terry)》之銘言: : : 問題2: ASq1.AppendFormat("SELECT AAA_003 FROM {0}..AAA_003_W ", mCompany); : ^^^^ : 上面那個{0}右邊有兩個小點,是代表什麼意思呢?? SQL Server 看你用的版本,早期的物件全名是: server.db.owner.object, SQL Server 2005 版之後改成 instance.db.schema.object,其中的 schema 就想像成是「分類」名稱。 舉例來說,我想查 Yukon 這部 Server 的 mlb 資料庫的 game 資料表: select * from yukon.mlb.dbo.game ...這樣子的全名有點長,於是-- 1. Server 名稱直接省略, 因為連線時一定已指明 Server 或 Instance 了。 2. 往往連線時也會指定或 use 講明 DbName,所以,DbName 可以再省掉。 3. 如果要存取的物件正好分類在目前連線帳號的 Default Schema,那麼名稱 的第三個部分也可省略。 4. 就算不是第三項指出的情形,如果物件歸類在 dbo 這個schema,dbo 也可 以省略不寫,反正東西找不到,SQL Server 最後還是會看看 dbo 這一區。 所以,我們經常就只看到這樣的寫法: select * from game 如果目前帳號也有權限查 nba 資料庫的資料,指令可以這樣寫: select * from nba.dbo.game 或者寫成 select * from nba..game 這樣,就是你問到的寫法了。原程式設計師是將 {0} 代換成 mCompany 的值 (也許各公司的資料分放在不同資料庫),.. 只是單純只是省略 schema。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.38.75.44

07/19 00:09, , 1F
蠻清楚的,謝謝您,市面上有這麼清楚的書可以參考嗎QQ?
07/19 00:09, 1F

07/19 00:24, , 2F
Multipart name應該都會提到,只是不會寫這麼細。
07/19 00:24, 2F

07/21 11:45, , 3F
看SQL文件可能比較有機會找到相關的.. 書本很少提到
07/21 11:45, 3F
文章代碼(AID): #1Hw15uBO (C_Sharp)
文章代碼(AID): #1Hw15uBO (C_Sharp)