查询时遇到困难。做了一些更改,但无法使其工作。
这些过程本身作为查询工作,但在另一个过程中调用时不起作用;因为我在调试时看不到填充的变量值
任何帮助值得赞赏吗?
Exec dbo.usr_GetLastDate @TableName, @LastTransDate
EXEC dbo.usr_GetRecCount @TableName, @RecCount
ALTER PROCEDURE [dbo].[usr_GetLastDate]
-- Add the parameters for the stored procedure here
@TableName SYSNAME,
@OUTDATE date Output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @SQLCommand NVARCHAR(MAX) =
N'SELECT @OUTDATE=MAX(TRANSDATE) FROM ' + QUOTENAME(@TableName);
EXECUTE [dbo].[sp_executesql]
@sqlCommand, N'@OUTDATE DATE OUTPUT', @OUTDATE=@OUTDATE OUTPUT;
END
ALTER PROCEDURE [dbo].[usr_GetRecCount]
-- Add the parameters for the stored procedure here
@TableName SYSNAME,
@OUTINT int output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @SQLCommand NVARCHAR(MAX) =
N'SELECT @OUTINT=COUNT(SYMBOL) FROM ' + QUOTENAME(@TableName);
EXECUTE [dbo].[sp_executesql]
@sqlCommand, N'@OUTINT INT OUTPUT', @OUTINT=@OUTINT OUTPUT;
END
最佳答案
如果您使用的是 Visual Studio 您可以在“变量”窗口中看到所有变量值。表达式只有在具有作用域时才会显示值,但有时它们的行为方式与我们想要的不同。
所以我的建议是你应该使用“变量”窗口来查看所有变量及其值。
关于mysql - 带有表变量和返回值输出的动态 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324325/