0
私はアーカイブデータを担当するアプリケーションを書いていますし、私たちはデータベースのテーブルこの構成に直面しているので、句
Id | TableName | ColumnName | RetentionAmountInDays
1 | DeviceData | MetricTime | 3
で設定を持って、私はすべてアーカイブする必要がありますSQL Serverのストアドプロシージャに変数を渡しますMetricTime値が3日前のDeviceDataテーブルのデータ。各設定について
私はこれをやっている理由は、動的にテーブル名と列名は、(複数の行が存在することになる)異なっている
このストアドプロシージャが
CREATE PROCEDURE GetDynamicDataForArchive
@TableName nvarchar(100),
@ColumnName nvarchar(100),
@OlderThanDate datetime2(7)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(1000);
SET @sql = 'SELECT * FROM ' + @TableName + ' WHERE ' + @ColumnName + ' < @OlderThanDate';
exec sp_executesql @sql;
END
そして例のexecラインと呼ばれています
:exec dbo.GetDynamicDataForArchive 'DeviceData', 'MetricTime', '2017-04-16 20:29:29.647'
これは、その結果
したがって、datetime2をどのように渡しているのか、where節をどのように作成しているのかが分かります。