热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

存储过程中接受永远不能工作的SQLServer查询

如何解决《存储过程中接受永远不能工作的SQLServer查询》经验,为你挑选了1个好方法。

可以(从SQL编译器的角度)的工作,如果一个指定列t1被添加到任意的表和一个类型的方法命名c1也被加入到数据库中.

由于编译器不知道将来可能添加的名称和方法,因此延迟名称解析规则表明它必须接受它.

简而言之,它不是语法错误,因此不会被拒绝.


这样的问题确实应该在调试过程中得到解决,但是如果你想在解析和保存存储过程时捕获,你可以通过这样做来完成它:

create procedure tempsproc
as 
    select t1.c1
    from #t 
    join t2 on #t.c2 = t3.c3
go
BEGIN TRANSACTION
    EXEC tempsproc;
ROLLBACK TRANSACTION
go

类型方法

我被要求解释类型方法,所以在这里.

大多数较新的数据类型(如XML和Spatial)都包含只能在这些数据类型上使用的特殊方法.以下是Microsoft的一个示例:

CREATE TABLE SpatialTable   
    ( id int IDENTITY (1,1),  
    GeomCol1 geometry,   
    GeomCol2 AS GeomCol1.STAsText() );  
GO  

INSERT INTO SpatialTable (GeomCol1)  
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));  

这显示了两种截然不同的方法格式(GeomCol1.STAsText()geometry::STGeomFromText('...')),这突出了另一点.

此语法符合某些标准(在本例中为OGC).XML方法必须符合不同的标准.他们将来添加的其他数据类型可能必须符合其他标准,这意味着他们必须非常灵活地了解方法的可允许语法,包括它是否有任何括号.

最后,您可能想知道," 但他们不提前知道存在哪些数据类型方法? "令人惊讶的是,答案是"否",因为SQL Server允许将新数据类型添加到现有服务器和数据库中.因此,例如,XML数据类型最初是SQL Server的可选附加组件(扩展)(它们随后被内置到下一个主要版本中).此外,我相信(不确定)客户和第三方也可以自己创建并将它们添加到现有数据库中.



1> RBarryYoung..:

可以(从SQL编译器的角度)的工作,如果一个指定列t1被添加到任意的表和一个类型的方法命名c1也被加入到数据库中.

由于编译器不知道将来可能添加的名称和方法,因此延迟名称解析规则表明它必须接受它.

简而言之,它不是语法错误,因此不会被拒绝.


这样的问题确实应该在调试过程中得到解决,但是如果你想在解析和保存存储过程时捕获,你可以通过这样做来完成它:

create procedure tempsproc
as 
    select t1.c1
    from #t 
    join t2 on #t.c2 = t3.c3
go
BEGIN TRANSACTION
    EXEC tempsproc;
ROLLBACK TRANSACTION
go

类型方法

我被要求解释类型方法,所以在这里.

大多数较新的数据类型(如XML和Spatial)都包含只能在这些数据类型上使用的特殊方法.以下是Microsoft的一个示例:

CREATE TABLE SpatialTable   
    ( id int IDENTITY (1,1),  
    GeomCol1 geometry,   
    GeomCol2 AS GeomCol1.STAsText() );  
GO  

INSERT INTO SpatialTable (GeomCol1)  
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));  

这显示了两种截然不同的方法格式(GeomCol1.STAsText()geometry::STGeomFromText('...')),这突出了另一点.

此语法符合某些标准(在本例中为OGC).XML方法必须符合不同的标准.他们将来添加的其他数据类型可能必须符合其他标准,这意味着他们必须非常灵活地了解方法的可允许语法,包括它是否有任何括号.

最后,您可能想知道," 但他们不提前知道存在哪些数据类型方法? "令人惊讶的是,答案是"否",因为SQL Server允许将新数据类型添加到现有服务器和数据库中.因此,例如,XML数据类型最初是SQL Server的可选附加组件(扩展)(它们随后被内置到下一个主要版本中).此外,我相信(不确定)客户和第三方也可以自己创建并将它们添加到现有数据库中.


推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
author-avatar
初始化
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有