【发布时间】:2018-04-25 13:20:13
【问题描述】:
使用 sql server,在 Azure 中。
a 请求存储过程从开发人员那里返回下一个数字。
这是他们返回的。
BEGIN
exec ('
SELECT
(
SELECT FORMAT(getdate(),agencyFormat) FROM [dbo].[tblCardNextNum] WHERE agencyID = '+@agencyID+' and type = '''+@type+''') +
FORMAT(NEXT VALUE FOR [dbo].['+@agencyShort+'],
(
SELECT REPLICATE(''0'',
(
SELECT [agencyMaxLength] FROM [dbo].[tblCardNextNum] WHERE agencyID = '+@agencyID+' and type = '''+@type+'''
)
)
)
)
')
END
现在当我在 ssms 中执行存储过程时,它会显示下一个数字,但它不会返回任何内容,只会显示它。
所以我的问题是......
我要在这个存储过程中添加什么才能真正将新创建的数字返回给调用函数?
致那些询问调用此存储过程的人...
EXEC [dbo].[GetCrudAgencyNextNum]
@agencyShort = N'PLFD',
@agencyID = 2,
@type = N'C'
小屏幕截图
不,这不是 MVC 解决方案的副本 - 我看过。
我的问题是.. 我要在这个存储过程中添加什么来返回值。
【问题讨论】:
-
通常返回值的一个好的起点是在查询中实际包含单词 return。另外,谷歌“SQL Server Return”。
-
在SSMS中,你认为显示结果和返回结果有什么区别?如果您正确执行,可能会按原样在您的调用函数中获得结果。但是您还没有向我们展示调用函数。
-
该代码正在调用序列ID,使用动态代码。请首先发布所有代码,而不仅仅是部分代码。我认为操作是指
Messages选项卡与Results选项卡的显示。 -
我建议参数化你的 SQL;它现在对注射敞开大门。
标签: sql-server