0

テーブルをヒープキューとして使用しようとしています。ただし、デキュー関数で生成されたテキストを取得して実行する方法を理解するのに少し問題があります。

キューとデキューメソッドを格納するテーブルは次のとおりです。

CREATE TABLE [dbo].[Merge_Queued_Work](Sql_Text varchar(2000) NOT NULL)
GO

create procedure usp_dequeueWork
as
  set nocount on;
  delete top(1) from [Merge_Queued_Work] with (rowlock, readpast)
      output deleted.[Sql_Text];      
go

deleted.[Sql_Text]varcharをexecuteステートメントに取得するにはどうすればよいですか?

4

1 に答える 1

2

出力をテーブル変数にキャプチャし、テーブル変数から varchar 変数に入力します。

create procedure usp_dequeueWork
as
  set nocount on;

  declare @T table(Sql_Text varchar(2000))
  declare @S varchar(2000)

  delete top(1) from [Merge_Queued_Work] with (rowlock, readpast)
      output deleted.[Sql_Text] into @T;      

  select @S = Sql_Text from @T

  exec (@S)
于 2012-11-06T06:30:11.017 に答える