这令人困惑。对于存储过程的声明:
CREATE PROCEDURE dbo.JobGet
@jobGuid uniqueidentifier = NULL,
此行返回结果:
exec dbo.JobGet @jobGuid ='BDEA1E43-9EC7-42B0-A386-903FE1749FF7'
这个不是:
exec sp_executesql N'dbo.JobGet',N'@jobGuid uniqueidentifier',@jobGuid='BDEA1E43-9EC7-42B0-A386-903FE1749FF7'
任何人都可以解释原因吗?
答案 0 :(得分:3)
调用SP时,需要将@jobGuid添加为参数。如果没有它,参数将具有默认值NULL
。
exec sp_executesql N'dbo.JobGet @jobGuid',
N'@jobGuid uniqueidentifier',
@jobGuid='BDEA1E43-9EC7-42B0-A386-903FE1749FF7'