日期:2014-05-17 浏览次数:20483 次
EXECUTE sp_executesql N'SELECT * FROM AdventureWorks2012.HumanResources.Employee WHERE BusinessEntityID = @level', N'@level tinyint', @level = 109;
------解决方案--------------------
参考:
http://technet.microsoft.com/zh-cn/library/dd193298(zh-tw).aspx
------解决方案--------------------
MSDN确实有这样的描述,但是至于为何会提高性能没有明确解释,但是建议这样写 完全限定对象名:数据库名称.所有者(默认dbo).对象名(表,SP,视图...)
------解决方案--------------------
意思就是说通常我们引用表都是直接表名什么的
select * from tb
或者exec sp
没有指定架构名称,系统还需要去检索当前用户的默认架构
然后追加上完整的名称,然后编译执行
如果你是 select * from dbo.tb
或者exec mydbo.sp
这样少了一个检索的步骤
所以提升了性能
这个就好比 select *
系统要去检索这个*都有哪些东西。
------解决方案--------------------
悠悠解释的很正确,悠悠解释的很勤快,悠悠好棒。
------解决方案--------------------
数据库名.所有者(架构名称).表名