在存储过程中,我正在构建使用sp_executesql
过程执行的动态SQL语句。
动态SQL语句可以是存储过程,即:
初始存储过程本身返回其他行集。我想只返回它们,并且不从内部过程返回行集。
通常,我想强制以下语句不返回任何内容:
DECLARE @DynamicSQLStatement NVARCHAR(MAX)
SET @DynamicSQLStatement = N'SELECT 1 SELECT 2 SELECT 3 SELECT 4 SELECT 5'
EXEC sp_executesql @DynamicSQLStatement
有办法做到这一点吗?
答案 0 :(得分:0)
我猜你可以通过这样做来调整你的商店程序。
CREATE PROCEDURE usp_StopMessageProc
@StopMsg bit = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Sql VARCHAR(MAX);
SET @Sql = '';
SET @Sql = 'SELECT Column1, Column2, Column3.... ';
IF @StopMsg = 1
SET @Sql = @Sql + 'INTO #TempDeleteMe';
SET @Sql = @Sql +
'FROM dbo.SomeTable ';
EXEC(@Sql);
END
GO
通过defualt你的proc将做任何最好的事情但是当@StopMsg设置为1时它会抑制返回消息/结果集。