ホームページ >データベース >mysql チュートリアル >SQL Server でテーブル内の各行のファイルの存在を確認するにはどうすればよいですか?

SQL Server でテーブル内の各行のファイルの存在を確認するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-06 02:33:40390ブラウズ

How Can I Verify File Existence in SQL Server for Each Row in a Table?

SQL Server でのファイルの存在の確認

問題ステートメント

ファイル パスを含むテーブルが指定された場合列に格納されている場合、タスクは各ファイルがファイル システムに物理的に存在するかどうかを判断することです。目標は、既存のファイルには「はい」、存在しないファイルには「いいえ」を示す一時列を追加することです。

解決策

これを達成するには、次のようにします。 master.dbo.xp_fileexist 拡張ストアド プロシージャを使用して、指定されたファイルの存在を確認できます。ただし、この手法をテーブルに適用するには、カスタム関数が必要です。

カスタム関数

CREATE FUNCTION dbo.fn_FileExists(@path varchar(512))
RETURNS BIT
AS
BEGIN
     DECLARE @result INT
     EXEC master.dbo.xp_fileexist @path, @result OUTPUT
     RETURN cast(@result as bit)
END;
GO

計算列の追加

テーブルを編集して、IsExists という計算列を追加します。式:

dbo.fn_FileExists(filepath)

使用法

これで、既存のファイルを持つレコードを選択するだけで済みます:

SELECT * FROM dbo.MyTable where IsExists = 1

代替使用法(計算列の外側)

関数を外側で使用するには計算列:

select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable

トラブルシューティング

既知のファイルに対して関数が 0 を返す場合は、フォルダーのアクセス許可を確認し、SQL Server アカウントに読み取り専用アクセス権があることを確認してください。 。さらに、フォルダーのセキュリティ設定に「ネットワーク サービス」アカウントを追加して、アクセスを許可します。

以上がSQL Server でテーブル内の各行のファイルの存在を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。