下面脚本有问题,能否帮我指出哪里有问题.想用sp_executesql执行另一个存储过程应该怎么写?declare @name nvarchar(20)
set @name=N'sa'
exec sp_executesql N'sp_who @name',N'@name nvarchar(20)',@name
set @name=N'sa'
exec sp_executesql N'sp_who @name',N'@name nvarchar(20)',@name
set @name=N'sa'
exec sp_executesql N'exec sp_who @name',N'@name nvarchar(20)',@name
set @name=N'sa'
exec sp_executesql N'exec sp_who @name',N'@name nvarchar(20)',@name
set @name=N'sa'
exec sp_who @name
如果用两种写法反复调用同一个存储过程(不一定是sp_who),请问哪一种方法性能最好?
declare @begin datetime,@end datetime
set @begin=getdate()
set @i=0
while @i<1000
begin
declare @name nvarchar(20)
set @name=N'sa'
exec sp_executesql N'exec sp_who @name',N'@name nvarchar(20)',@name
set @i=@i+1
end
set @end=getdate();
select datediff(millisecond,@begin,@end)
set @name=N'sa'
exec sp_executesql N'exec sp_who @name',N'@name nvarchar(20)',@name
declare @begin datetime,@end datetime
set @begin=getdate()
set @i=0
while @i<1000
begin
--方法1:
--declare @name nvarchar(20)
--set @name=N'sa'
--exec sp_executesql N'exec sp_who @name',N'@name nvarchar(20)',@name--方法2:
declare @name nvarchar(20)
set @name=N'sa'
exec sp_who @name
set @i=@i+1
end
set @end=getdate();
print datediff(millisecond,@begin,@end)