テーブルに行が含まれているかどうかを確認します。SQLServer2005
-
23-09-2019 - |
質問
テーブルに行が含まれているかどうかを確認する方法SQL Server 2005?
解決
どんな目的のために?
- ifのために最も速い
IF EXISTS (SELECT * FROM Table)...
- 結果セットのために、
SELECT TOP 1 1 FROM Table
ゼロまたは1行のいずれかを返します - カウント(0またはゼロ以外)を持つ正確な1つの行の場合、
SELECT COUNT(*) FROM Table
他のヒント
また、使用できます 存在します
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
他の人と同じように、あなたはそのようなものを使うことができると言った:
IF NOT EXISTS (SELECT 1 FROM Table)
BEGIN
--Do Something
END
ELSE
BEGIN
--Do Another Thing
END
最高のパフォーマンスをするには、 *の代わりに特定の列名を使用します。たとえば、:
SELECT TOP 1 <columnName>
FROM <tableName>
これは最適です。なぜなら、列のリスト全体を返す代わりに、1つだけを返すからです。時間を節約できます。
また、値がある場合に最初の行のみを返すと、さらに速くなります。実際には、結果として1つの値しかありませんでした - 行がある場合、または行がない場合は値がない場合。
サーバーからクライアントに1つの値を1つだけ輸送するよりも、分散方法でテーブルを使用する場合は、おそらくそうです。
また、すべての列から賢明に選択して、可能な限り少ないリソースを取得できる列からデータを取得する必要があります。
使用して行を数えることはできません select count(*) from table
(または、速度が重要な場合は *の代わりにインデックス付き列)?
そうでない場合は多分 この記事 あなたを正しい方向に向けることができます。
まあ、タイトル以外に別のURLを持つのではなく、スコアカードをホストするWebパーツのタイトルURLを使用しました。そのため、上の上の図では、カトマンズ渓谷プロジェクトをクリックすると、希望のSharePointページに移動します。 以下は、WebパーツのタイトルURLを編集するために必要な手順です。
- Webパーツの編集をクリックします。
- 詳細セクションを展開します。
- タイトルURLの値を入力してください。
スコアカードから概要ページにリダイレクトする目的を達成するための代替方法を私に与えました。