ホームページ >データベース >mysql チュートリアル >SQL Server でテーブル内の各行のファイルの存在を確認するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。