0

これまでのところ、 Denali の With Result Set のリアルタイムの使用法は何ですか? SQL ストアド プロシージャは、実行時に列名とデータ型の名前を変更することとは別に懸念事項です。

With Result Set で実行時にデータ型を変更する利点は何ですか

例えば

Alter PROCEDURE test_Proc
AS
BEGIN 
      SELECT  * FROM tbl_Test
END
GO
EXEC test_Proc 
WITH RESULT SETS 
(
       (      Id int,
              EmpName varchar(50),
              PNo varchar(50) 
       )    
)

列のデータ型が変更されたとしても、それをどうするのでしょうか?

ただし、この記事では、SSIS での利点についていくつかのアイデアを提供しています。しかし、私はSql Serverに格納されたProcがフロントエンドアプリケーション(c#など)などと通信することにもっと興味があります。

4

1 に答える 1

2

たとえば、アプリケーションが sp_who2 を呼び出しており、SPID を int32 に格納しているとします。sp_who2 は SPID を char として返すため、出力を int32 に変換するには、すべてのアプリで特別な処理を実行する必要があります。ラッパー プロシージャを作成すると、これを 1 か所で実行でき、最初に結果を一時テーブルにダンプする必要がなくなります。sp_who2 のもう 1 つの興味深いケースは、2 つの同一の SPID 列を返すことです。WITH RESULT SETS を使用すると、そのうちの 1 つの名前を変更して (たとえば、redundant_SPID に)、アプリで同じ名前の複数の列が表示されないようにすることができます。

もう 1 つのユース ケースは、データ型を int64 から int32 に、または int32 から varchar に変更する場合ですが、すべてのアプリを一度に変更することはできません。「最新の」アプリを変更して新しいデータ型を使用し、他の「現在変更できない」アプリを残して古いデータ型を使用することができます。これは、すべてのアプリで大規模なデータ型の変更を行うのではなく、アプリの展開とテストを 1 つずつ分割できることを意味します。

于 2011-03-07T19:10:28.280 に答える