易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL基本使用和代码优化

EXEC和sp_executesql的区别?
DBCC FREEPROCCACHE --》清空缓存中的执行计划
SELECT cacheobjtype,objtype,usecounts,sql from sys.syscacheobjects WHERE sql NOT LIKE '%cach%' AND sql NOT LIKE '%sys.%' --》查找对应的缓存中的对应计划
SQL Server为每一个的查询字符串创建新的执行计划,即使查询模式相同也是这样
EXEC除了不支持动态批处理中的输入参数外,他也不支持输出参数
用法:
Exec('select * from CustInfo')
Exec sp_executesql N'select * from CustInfo'
declare @paraName varchar(20)
set @paraName='CustName'
Exec('select '+@paraName+' from CustInfo')--加号前后加上空格
如果你要把输出返回给调用批处理中的变量:
DECLARE @sql NVARCHAR(MAX),@RecordCount INT
SET @sql = 'SELECT COUNT(ORDERID) from Orders';
CREATE TABLE #T(TID INT);
INSERT INTO #T EXEC(@sql);
SET @RecordCount = (SELECT TID from #T)
SELECT @RecordCount
DROP TABLE #T
sp_executesql命令在SQL Server中引入的比EXEC命令晚一些,它主要为重用执行计划提供更好的支持。
它的构成包括:代码快,参数声明部分,参数赋值部分
EXEC sp_executesql
@stmt = <statement>,--类似存储过程主体
@params = <params>, --类似存储过程参数部分
<params assignment> --类似存储过程调用
@stmt参数是输入的动态批处理,它可以引入输入参数或输出参数,和存储过程的主体语句一样,只不过它是动态的,而存储过程是静态的,不过你也可以在存储过程中使用sp_executesql;
@params参数与定义输入/输出参数的存储过程头类似,实际上和存储过程头的语法完全一样;
@<params assignment> 与调用存储过程的EXEC部分类似。
用法:
declare @paraName varchar(20)
set @paraName='CustName'
declare @temp nvarchar(1000)
set @temp='select ' +@paraName+ ' from CustInfo'
Exec(@temp)
exec sp_executesql  @temp--因为 sp_executesql只能执行的类型为ntext/nchar/nvarchar,所以@temp需要从varchar改为nvarchar
  DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OrderID INT;
      SET @TableName = 'CustInfo ';
      SET @OrderID = 10;
     SET @sql = 'SELECT * from '+QUOTENAME(@TableName) + ' WHER


相关文档:

最大程度降低 SQL Server 中的阻塞

http://technet.microsoft.com/zh-cn/magazine/2008.04.blocking.aspx
SQL Server
最大程度降低 SQL Server 中的阻塞
Cherié Warren
 
概览:
发生锁升级的原因
避免不必要的阻塞
优化查询
监视锁定对性能的影响
锁定对支持数据库的并发读写活动而言是必需的,但阻塞却会对系统性能产生负面影响, ......

VS 2008 开发的报表不能部署到 SQL Server 2005上

现象:
用VS 2008打开VS 2005开发的报表后,会把报表单向升级到2008的shcema,不能再转回2005的schema.再发布到SQL Server 2005上时会报错:"无法升级的名称空间".
找到的解决办法:
在SQL Server 2005所在的机器上开发报表.
把SQL Server升级到 SQL Server 2008.
据说有Reporting Service 2008的单独安装版,可以 ......

在ACCESS数据库中打开sql窗口的方法

       为了执行sql语句,我们会在access数据库中执行sql语句,这样方便我们分析。方法如下:
     打开access数据库,点击”创建“,在单击“查询设计”,会弹出一个显示表的窗口,关掉。会出现一个sql试图,打开就可以再里面写sql代码了。 ......

通过作业自动备份sql server 2005数据库

在SQL Server 2005数据库中实现自动备份的具体步骤:
1、打开SQL Server Management Studio
2、启动SQL Server代理
3、点击作业->新建作业
4、"常规"中输入作业的名称
5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句(红色部分要根据自己的实际情况更改,'D:\LMS2.0\LMS2.0\bak\' 改为自己的备份路径, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号