-1

そこにいくつかの変数を設定するためにアプリケーションで使用されているテーブルがあります。ただし、それが行うことの 1 つはファイルの作成であり、ファイル名とディレクトリはテーブルに保存されます。しかし、ファイル名を次のような式CONVERT(VARCHAR(10),GETDATE(),20) + '.txt'にしたいので、これをSQL式としてテーブルに保存し、それを評価して値を取得したいと思います2012-03-27.txt

誰もそれを行う方法を知っていますか?

動的 SQL SP は機能するかもしれませんが、かなり複雑になります。他に方法はありますか?

添加

行ごとに異なる式が必要なため、計算列は機能しません。

各行に異なる値を入力できる計算列を持つことができるようなことがあれば素晴らしいでしょう!

4

3 に答える 3

0

解決しました!

私の特定のケースでは、「アプリケーション」は SSIS パッケージなので、私がしたことは非常に簡単です。

  1. テーブルから変数に値を取得します@User::srcFile
  2. SQL ステートメント式を次のように設定して、SQL 実行タスクを作成します。"SELECT " + @[User::srcFile] + " AS FileName"
  3. 結果セットセクションで、に割り当てましFileNameUser::srcFile

助けてくれてありがとう!

于 2013-02-28T15:06:51.890 に答える
0

信じられないほど効率的である可能性は低いですが、1 つの方法を次に示します。

DECLARE @x TABLE(sql NVARCHAR(2000));

INSERT @x(sql) VALUES
  ('CONVERT(VARCHAR(10),GETDATE(),20) + ''.txt'''),
  ('CONVERT(CHAR(8), GETDATE(), 112) + ''.sql''');


DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += ' UNION ALL SELECT ' + sql FROM @x;

SET @sql = STUFF(@sql, 1, 11, '');

EXEC sp_executesql @sql;

結果:

2013-02-27.txt
20130227.sql
于 2013-02-27T19:53:58.937 に答える
0

指定したコードを正確に持つ列の式を使用して、テーブル定義の計算列として配置するだけで、すべて設定されます。

于 2013-02-27T19:41:03.767 に答える