确定 SQL Server 中的文件是否存在
检查文件是否存在是数据库开发中的常见需求。在 SQL Server 中,xp_fileexist 扩展过程可用于验证指定的文件是否驻留在服务器计算机上。
考虑以下场景:您有一个名为 MyTable 将文件路径存储在其 filepath 列中。您的任务是确定这些文件是否存在于计算机上,并向表中添加一个临时列 IsExists 以指示它们是否存在。
解决方案:
创建文件存在功能:
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
向 MyTable 添加计算列:
ALTER TABLE MyTable ADD IsExists BIT AS dbo.fn_FileExists(filepath);
检索现有文件路径:
SELECT * FROM MyTable WHERE IsExists = 1;
替代方法:
如果您喜欢在计算列之外使用该函数,您可以使用以下查询:
SELECT id, filepath, dbo.fn_FileExists(filepath) AS IsExists FROM MyTable;
可能陷阱:
如果函数对于已知文件返回 0,请检查文件夹和文件的权限。确保 SQL Server 帐户有足够的访问权限来读取文件。
结论:
通过利用 xp_fileexist 过程并创建用户定义的功能,您可以快速确定 SQL Server 环境中是否存在文件,并更有效地管理与文件相关的任务。
以上是如何检查 SQL Server 中的文件是否存在并在表中指示它?的详细内容。更多信息请关注PHP中文网其他相关文章!