如何檢查一個表是否包含行sql server 2005?檢查一個表是否包含行sql server 2005
39
A
回答
70
爲了什麼目的?
- 最快爲一個IF將
IF EXISTS (SELECT * FROM Table)...
- 對於結果集,
SELECT TOP 1 1 FROM Table
返回零個或一個行 - 對於正好一個行與計數(0或非零),
SELECT COUNT(*) FROM Table
26
此外,您還可以使用exists
select case when exists (select 1 from table)
then 'contains rows'
else 'doesnt contain rows'
end
,或者檢查是否有特定記錄的子行:
select * from Table t1
where exists(
select 1 from ChildTable t2
where t1.id = t2.parentid)
或在過程
if exists(select 1 from table)
begin
-- do stuff
end
1
燦」你只需要使用select count(*) from table
(或索引列而不是*來計數行,如果s peed是重要的)?
如果不是那麼也許this article可以指向你在正確的方向。
7
像其他的說,你可以使用類似的東西:
IF NOT EXISTS (SELECT 1 FROM Table)
BEGIN
--Do Something
END
ELSE
BEGIN
--Do Another Thing
END
0
爲了獲得最佳性能,使用特定的列名,而不是*的 - 例如:
SELECT TOP 1 <columnName>
FROM <tableName>
這種情況的原因,而不是返回列的整個列表,它返回只有一個是最優的。這可以節省一些時間。
此外,如果有任何值返回第一行,使其更快。其實你只有一個值 - 如果有任何行,或者沒有行時沒有值。
如果以分佈式方式使用表(這很可能是這種情況),那麼僅將一個值從服務器傳輸到客戶端要快得多。
您還應該在所有列中明智地選擇從列中獲取數據,從而獲得儘可能少的資源。
相關問題
- 1. 檢查是否行包含/ *
- 2. C++檢查一個列表是否包含一個子列表
- 3. MySQL檢查行是否包含來自另一個表的值
- 4. 檢查一個表是否包含行C#
- 5. Microsoft SQL Server 2005檢查臨時表是否空
- 6. 檢查一個列表是否包含一個字符串
- 7. SQL檢查組是否包含NULL
- 8. 在sql server中檢查字符串是否包含特定值
- 9. 檢查一個表是否包含列表中的值
- 10. 檢查一個值是否存在於多個表中SQL Server
- 11. 在sql server 2005上執行SSIS包2005
- 12. 檢查一組值被包含在一個列在SQL Server
- 13. 檢查行是否包含單詞
- 14. 檢查Cursor是否包含行結果?
- 15. 檢查行是否包含字符串
- 16. 檢查是否存在表的SQL Server
- 17. 檢查是否包含jQuery
- 18. 檢查列表是否包含密鑰
- 19. PHP檢查MySQL表是否包含值
- 20. 檢查列表是否包含類型?
- 21. 檢查數據庫是否包含表
- 22. 檢查一個表是否包含具有特定列值的行
- 23. 如何檢查是否安裝了SQL Server 2005或2008
- 24. 檢查值是否存在於列或沒有在SQL Server 2005
- 25. 檢查列表是否包含至少一個非零元素
- 26. 檢查列表是否包含至少一個非空對象
- 27. 檢查一個列表是否只包含零
- 28. 如何檢查是否一個SQL腳本是與SQL Server 2000兼容
- 29. 檢查文本是否包含多個@
- 30. 檢查是否包含兩個日期
使用情況......何時和/或是否可能比不使用這些更慢一點。 – Sasa 2016-12-14 14:19:59