sql >> データベース >  >> RDS >> Sqlserver

SQLサーバーにファイルが存在するかどうかを確認しますか?

    次のような関数を作成します:

    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 BIT)を追加します。式を次のように設定します:

    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のアカウントに、フォルダーとファイルにアクセスするための十分なアクセス許可があることを確認してください。読み取り専用で十分です。

    そして、はい、デフォルトでは、「ネットワークサービス」アカウントはほとんどのフォルダに十分な権利を持っていません。問題のフォルダを右クリックして[プロパティ]を選択し、[セキュリティ]タブをクリックします。 [編集]をクリックして、[ネットワークサービス]を追加します。 [適用]をクリックして再テストします。



    1. 良いインデックスが何であるかをどうやって知るのですか?

    2. MySQLCASTとCONVERT

    3. T-SQLのピボットデータ

    4. MySQLに存在する場合は更新し、存在しない場合は挿入(別名アップサートまたはマージ)するにはどうすればよいですか?