2

クライアントデータを使用してデバッグする必要があり、データベースを完全にバックアップする時間がない場合は、SQL結果を静的な「selectUNION select UNION」の組み合わせに手動で変換して、データをその場で使用できるようにします...

例:

select * from items

結果:

Itemcode     ItemName     Price
Car1         FerrariX     1200.00
Car2         FerrariZ     3000.00
Car3         MustangR     2100.00

そして、次のようにデバッグ環境に戻します。

select 'Car1' as Itemcode, 'FerrariX' as Itemname, 1200.00 as 'Price' UNION
select 'Car2',             'FerrariZ', 3000.00 UNION
select 'Car3',             'MustangR', 2100.00

可能なストアドプロシージャソリューション:

EXEC spQueryAsStaticData @Query = 'select * from items'

この変換を自動的に行うにはどうすればよいですか?いくつかのストアドプロシージャ?

4

2 に答える 2

0

最終的に、SQLクエリから直接生成するほど有用ではない小さなC#アプリを開発することで解決しましたが、機能します...

誰かがSQLソリューションを提供した場合、私たちはその人に答えを与えます

于 2013-01-31T08:41:11.270 に答える
0

私はこのようなものを使用して、データを使用してテキストを印刷します

DECLARE @i int
DECLARE @employee_id int
Declare @Hash nvarchar(max)
declare @Result nvarchar(max)
Declare @String nvarchar(MAX)
DECLARE @numrows int
DECLARE @employee_table TABLE (
    idx smallint Primary Key IDENTITY(1,1)
    , [ID] int , [Hash] nvarchar(50), Result nvarchar(50)
)


INSERT @employee_table
SELECT Top 5 * FROM [Hlist].[dbo].[MD5]
set @i =0 
set @String = '' 


SET @numrows = (SELECT COUNT(*) FROM @employee_table)

IF @numrows > 0

    WHILE (@i <= (SELECT MAX(idx) FROM @employee_table))
    BEGIN


        -- get the next employee primary key
        SET @employee_id = (SELECT ID  FROM @employee_table WHERE idx = @i)
        SET @Hash = (SELECT Hash  FROM @employee_table WHERE idx = @i)
        SET @Result = (SELECT Result  FROM @employee_table WHERE idx = @i)
        Set @String = coalesce(@String +'Select '+ convert(varchar,@employee_id) + ', ' +@Hash+ ', '+@Result +' Union ', '')

        --
        -- do something with this employee
        --


        -- increment counter for next employee
        SET @i = @i + 1
    END


    Print @String
于 2013-01-29T10:53:55.567 に答える