
お世話になります。
SQL Server 2005のプロシージャにて
テーブルの削除→CSVファイルの取り込み→CSVファイルの削除を行いたいと思っております。
ALTER PROCEDURE [dbo].[テーブル削除+インポート+ファイル削除]
AS
begin
DELETE FROM dbo.テーブル
BULK INSERT テーブル FROM 'テキストファイル'
WITH (DATAFILETYPE='char', FIELDTERMINATOR=',',ROWTERMINATOR='\n')
end
ここで、テーブル削除とCSVファイルのインポートはできたのですが、ファイルの削除が未だにできません。
このあとテキストファイルをこのプロシージャ内で削除するにはどうすればよいでしょうか。
No.1ベストアンサー
- 回答日時:
拡張ストアドの xp_cmdshell で可能です。
但し、この拡張ストアドは SQL-Server ユーザーがコマンドラインで実行可能な全ての行為を行なう事ができてしまいます。
それくらい危険極まりないので、デフォルトでは使えないようになっています。
(かつて猛威を振るったワーム型ウイルス Slammer は、確かこの xp_cmdshel を内部で使っていました)
使い方は以下、MSDNを参考に。
xp_cmdshell (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms175046 …
xp_cmdshell オプション
http://msdn.microsoft.com/ja-jp/library/ms190693 …
企業やプロジェクトによっては、セキュリティの観点から xp_cmdshell の使用を禁止している場合があるかもしれません。
xp_cmdshell 以外にも方法はいくつか考えられます。
■ストアドからDTSをキックする
自分はやった事無いですが(もしくは忘れてしまいましたが)多分、DTSが使えるのであればファイルの削除も可能でしょう。
■OLE オブジェクトを使う
例えば、VB(VBA、VBS)などでファイルシステムを扱う場合、
CreateObject("Scripting.FileSystemObject")
のように書きます。
これと同じ事をTransact-SQLでは
sp_OACreate 'Scripting.FileSystemObject'
と表現できます。
つまり、Scripting.FileSystemObjectの DeleteFile メソッドもストアドから実行できる、と言う事です。
こちらの方法は自分もやった事があります
結構ハマり、後々のお守りも大変だった記憶があります。
セキュリティの制限さえ無ければ、xp_cmdshell が一番楽チンです。
ありがとうございます。
やはりプロシージャ内でファイルを削除するには危険が伴うことがわかりました。
そのため、プロシージャを使わずにASP.NET側でデータのインポート⇒ファイルの削除をするようにいたしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Access(アクセス) AccessVBAで任意の複数リンクテーブルをAccessVBAを動かす際に削除したいと考えておりま 1 2022/11/17 15:45
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Visual Basic(VBA) リストボックスに表示されたファイルを削除したい 1 2023/04/19 12:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクスポート時の改行コードに...
-
既に使用されているので、使用...
-
AccessでCSVインポートのゼロサ...
-
SQL Server のデータをCSVファ...
-
accessのエクスポートエラーに...
-
ACCESSデータベースのインポート
-
SybaseのBCPでファイル上書き
-
bcpインサートでのフォーマ...
-
ACCESSでのCSVデータの自動取り...
-
symfowareのSQL文in句をバッチ...
-
Accessのリンクテーブルについて
-
SQLServer2005 クエリ結果のフ...
-
ACCESS2007 フォーム 「バリア...
-
SELECT文でのデッドロックに対...
-
「マスタ」と「テーブル」の違...
-
sqlserverで集計結果をUPDATEし...
-
重複するキーから一番古い年月...
-
Access VBA [リモートサーバー...
-
オラクルではできるのにSQLSERV...
-
IFで条件を分岐させてのINSERT...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessのエクスポートエラーに...
-
SQL Server のデータをCSVファ...
-
エクスポート時の改行コードに...
-
既に使用されているので、使用...
-
アクセスのテーブルからエクス...
-
SQLServer2005でフラットファイ...
-
symfowareのSQL文in句をバッチ...
-
Accessのリンクテーブルについて
-
MS-SQLプロシージャでファイル...
-
AccessでCSVインポートのゼロサ...
-
ACCESSでのエクセルインポート...
-
bcpによる、テーブル→CSVファイ...
-
SQLServer2005 データのCSVファ...
-
bcpインサートでのフォーマ...
-
SQL Server 2000 - bulk insert
-
SybaseのBCPでファイル上書き
-
DBMAGICのプログラム解析
-
スクリプトファイルの一括実行
-
[SQL Server] コマンドプロンプ...
-
ACCESSでのCSVデータの自動取り...
おすすめ情報