Cha*_*adD 3 t-sql sql-server-2005 sql-server-2008
我们有一个SSIS包,它在具有2005兼容性设置的SQL 2008盒子上进行生产.该程序包包含一个SQL任务,看起来好像脚本末尾的SQL没有运行.
在离开公司之前,处理该程序包的人注意到程序包需要在各个SQL命令之间"转到"才能解决问题.但是,在具有2008兼容性的SQL Server 2008上进行开发测试时,该软件包运行良好.
据我所知GO,为了效率,批量放置命令,批量发送命令到数据库提供程序.我认为GO应该影响结果的唯一方法是,如果该脚本上面的某个位置出现错误.GO在那种情况下,我可以想象,只有那种情况,影响结果.但是,我们没有看到记录任何错误的证据.
有人可以向我建议是否GO可能与问题有关吗?假设没有遇到错误,我对"GO"命令的理解表明它使用或缺乏使用很可能与问题无关.
该GO关键字,如你所说,所使用的SQL Server管理工具一批分离.但需要注意的是,关键字本身是由客户端而不是服务器解析的.
根据所讨论的SQL Server版本,有些事情需要放入不同的批处理中,例如创建和使用数据库.还有一些操作必须在批处理开始时进行(如use语句),因此使用这些关键字意味着您必须将脚本分成几批.
关于将脚本分成多个批次需要记住的几件事:
如果脚本只执行CRUD操作,那么除非需要任何上述行为差异,否则无需将其分解为多个批次.