`
wsql
  • 浏览: 11801844 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

[怎樣處理]SQL2008、SQL2005類型判斷出錯

 
阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if !mso]> <object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui> </object> <mce:style><!-- st1/:*{behavior:url(#ieooui) } --> <!-- [endif]--> <!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:表格內文; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->

use Tempdb

go

-- SQL2005 SQL2008 時,都會出現

set nocount on ;

if object_id ( 'Tempdb..#A' ) is not null

drop table #A

create table #A

(

A_ID int not null ,

Type nvarchar ( 20)

)

if object_id ( 'Tempdb..#B' ) is not null

drop table #B

create table #B

(

A_ID int not null,

Value nvarchar ( 4000),

Num int -- 無意義列

)

insert #A select 1, N'A'

insert #A select 2, N'A'

insert #B select 3, 'Error' , 0-- 類型非字符

/*

#A:

A_ID Type

----------- --------------------

1 A

2 A

#B:

A_ID Value Num

----------- -------------------- -----------

3 Error 0

*/

-- 轉換后出錯時出錯 , 不成立沒結果集

select

cast ( b. value as bigint ) as [ 轉換后出錯 ]

from #A a

inner join #B b on a. A_Id= b. A_Id

/*

訊息 8114 ,層級 16 ,狀態 5 ,行 28

Error converting data type nvarchar to bigint.

*/

insert #B select 1, 10, 0-- 新增一條后,影響引擎類型判斷以下不會錯

go

select

cast ( b. value as bigint ) as [ 轉換后出錯 ]

from #A a

inner join #B b on a. A_Id= b. A_Id

-- 怎樣處理方法 ( 用表提示處理 , 改變數據庫引擎的執行順序 )

--LOOP | HASH | MERGE | REMOTE

delete #B where isnumeric ( Value )= 1-- 刪除新增記錄

select

cast ( b. value as int ) as [ 轉換后正常 ]

from #A a

inner HASH join #B b on a. A_Id= b. A_Id

go


-- 新增條數據 , 數據量記錄數對類型判斷有影響 .

declare @i int

set @i= 0

while @i< 10

begin

insert #B select 3, 'Error' + rtrim ( @i), 2-- 類型非字符

set @i= @i+ 1

end

go

--force order 用提示強制執行順序

select

cast ( b. value as int ) as [ 轉換后正常 ]

from

#A a

Cross Apply

( select top 1 Value from #B where A_ID= a. A_ID order by Num asc ) b

option ( force order )

drop table #a, #b

分享到:
评论

相关推荐

    Web应用安全:使用SQL注入绕过认证.pptx

    SQL注入类型 数字型注入 字符型注入 其他类型注入 使用SQL注入绕过认证 1、SQL注入分类 数字型注入 许多网页链接有类似 /users.php?id=1 的结构,基于此种形式的注入,一般被叫做数字型注入点,缘由是其注入点 id ...

    飞恒进销存管理系统v7.21(源代码)

    1、系统修护中增加数据校验,校验当前库存是否正确,前提是中间没有删除过数据(vOtherInOutDetail.sql,pcdMonthAudit.sql,oldONHAND.sql,pcdInsOldOnHand.sql,vInOutDetail.sql,errONHAND.sql,CheckOnHandQty...

    SQL Server中事务,索引,触发器,游标

    自动提交事务(四)创建事务(五)事务处理中的关键问题(六)判断某条语句执行是否出错的方法(七)事务的使用 二、索引(一)索引概念(二)索引类型1.聚集索引2.非聚集索引(三)创建索引唯一索引:聚集索引:非...

    数据库应用程序实用攻略

    基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。 sql注入攻击 当应用程序使用...

    Visual C++ 2005入门经典.part08.rar (整理并添加所有书签)

    Visual C++ 2005入门经典.pdf(整理并添加所有书签) ,看书的时候更方便. 封面 目录 第1章 使用Visual C++ 2005 编程 1.1 .NET Framework 1.2 CLR 1.3 编写C++应用程序 1.4 学习windows编程 1.4.1 学习c++ 1.4.2 C++...

    Visual C++ 2005入门经典.part04.rar (整理并添加所有书签)

    Visual C++ 2005入门经典.pdf(整理并添加所有书签) ,看书的时候更方便. 封面 目录 第1章 使用Visual C++ 2005 编程 1.1 .NET Framework 1.2 CLR 1.3 编写C++应用程序 1.4 学习windows编程 1.4.1 学习c++ 1.4.2 C++...

    Visual C++ 2005入门经典.part05.rar (整理并添加所有书签)

    Visual C++ 2005入门经典.pdf(整理并添加所有书签) ,看书的时候更方便. 封面 目录 第1章 使用Visual C++ 2005 编程 1.1 .NET Framework 1.2 CLR 1.3 编写C++应用程序 1.4 学习windows编程 1.4.1 学习c++ 1.4.2 C++...

    Visual C++ 2005入门经典.part07.rar (整理并添加所有书签)

    Visual C++ 2005入门经典.pdf(整理并添加所有书签) ,看书的时候更方便. 封面 目录 第1章 使用Visual C++ 2005 编程 1.1 .NET Framework 1.2 CLR 1.3 编写C++应用程序 1.4 学习windows编程 1.4.1 学习c++ 1.4.2 C++...

    Visual C++ 2005入门经典.part09.rar (整理并添加所有书签)

    Visual C++ 2005入门经典.pdf(整理并添加所有书签) ,看书的时候更方便. 封面 目录 第1章 使用Visual C++ 2005 编程 1.1 .NET Framework 1.2 CLR 1.3 编写C++应用程序 1.4 学习windows编程 1.4.1 学习c++ 1.4.2 C++...

    Visual C++ 2005入门经典.part06.rar (整理并添加所有书签)

    Visual C++ 2005入门经典.pdf(整理并添加所有书签) ,看书的时候更方便. 封面 目录 第1章 使用Visual C++ 2005 编程 1.1 .NET Framework 1.2 CLR 1.3 编写C++应用程序 1.4 学习windows编程 1.4.1 学习c++ 1.4.2 C++...

    动易.NET产品3.5版0428

     ●修复标签快捷编辑页面跳转没有针对标签类型进行判断的问题;  ●修复外部链接节点链接为mailto:开头时返回链接错误的问题;  ●修复升级包会替换用户网站的favicon.ico文件问题;  ●修复高级搜索页面,无法...

    分页控件1.2.4.3

    去除HasGridView属性该为控件自行判断数据表格类型 3.增加在用缓存模式下改变SQL语句获得新数据功能 4.在绑定表格后对表格操作后绑定更加简单只需添加SqlPage1.DataBind()方法即可 去除程序员写繁琐的...

    EasyASP v2.1数据库操作类

    [数据库] 完善的数据库操作容错功能,能即时输出出错SQL语句方便调试。 [数据库] 在使用已经存在的数据库连接对象时能自动判断数据库类型。 [数据库] 专为Ajax设计的数据获取方式及输出Json格式数据。 [数据库] ...

    基于WebService的分布式多层应用范例

    每个方法被调用时会判断用户是否登录、是否有权限并写业务日志 PersonalManagerWS 以WebService发布服务 PersonalManagerWSAdapter 将Web引用的代理类转换回PersonalManagerModel中的类型,通过反射和缓存完成,在...

    SqlPage1.2.6.5版本升级

    去除HasGridView属性该为控件自行判断数据表格类型 3.增加在用缓存模式下改变SQL语句获得新数据功能 4.在绑定表格后对表格操作后绑定更加简单只需添加SqlPage1.DataBind()方法即可 去除程序员写繁琐的...

    springmybatis

    3. 在User.xml 文件里面 主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型等. 开始测试 在test_src 源码目录下建立com.yihaomen.test这个package,并建立测试类Test: 程序代码 程序代码 package ...

    SqlPage 1.2.5.3

    去除HasGridView属性该为控件自行判断数据表格类型 3.增加在用缓存模式下改变SQL语句获得新数据功能 4.在绑定表格后对表格操作后绑定更加简单只需添加SqlPage1.DataBind()方法即可 去除程序员写繁琐的...

    Visual C++ 2005入门经典--源代码及课后练习答案

    4.1 处理多个相同类型的数据值 141 4.1.1 数组 142 4.1.2 声明数组 142 4.1.3 初始化数组 145 4.1.4 字符数组和字符串处理 147 4.1.5 多维数组 150 4.2 间接数据存取 153 4.2.1 指针的概念 153 ...

    空调制冷维修改管理系统Delphi源代码.rar

    程序中有一个网络函数库,觉得功能很不错,可检测机器是否登入网络、返回本机的局域网Ip地址、通过机器名返回Ip、通过Ip返回机器名、返回网络中SQLServer列表、判断Ip协议有没有安装、返回网络中的共享资源、获取...

Global site tag (gtag.js) - Google Analytics