EXEC SP_EXECUTESQL
@DynamicSQL
, N'@HostIDs VARCHAR(MAX) OUTPUT'
, @HostIDs OUTPUT;
PRINT @HostIDs;
SELECT @HostIDs AS HostIDs;
SET @UpdateSQL = '
EXECUTE [dbo].[usp_Win7_HostUpdater_NEW]
@HostID = ''' + @HostIDs + ''' ,
@PackageID = ''' + @PackageID + ''' ,
@MigrationFlag = ''' + @MigrationFlagID + ''' ,
@Manufacturer = ' + @Manufacturer + ' ,
@Product = ' + @Product + ' ,
@Version = ' + @Version + ' ,
@Reason = ' + @Reason + ' ,
@Contact = ' + @Contact + '
';
SELECT @UpdateSQL AS UpdateSQL;
PRINT @UpdateSQL;
EXEC( @UpdateSQL )
END
上記のコードが最後の部分である SQL Server 2005 と 2008 の両方にストアド プロシージャがあります。
VARCHAR(MAX)
コンマで区切られた数値を返します。
現在、この戻り値は 600k 文字を超えています。これを SQL Server 2005 で実行すると、50% の確率で動作し、@HostIDs
常にデータが入力@UpdateSQL
され、正しい値が生成されて実行されます。
SQL Server 2008 では、@HostIDs
入力されますが、@UpdateSQL
常に NULL です
これは私を途方もなく奇妙にしています
誰かが私の奇妙な問題に光を当てることができますか?