当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:22:00  来源:本站整理

SQL脚本生成的一些BUG(1)[MSSQL防范]

赞助商链接



  本文“SQL脚本生成的一些BUG(1)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
微软的SQL脚本生成令我伤透了心——我一向认为是我的程序上的问题,大概我操作上的失误,并且,客服人员屡屡抱怨我的程序bug,多次测试之后,才发现,本来都是微软惹的祸……

Sql Server的脚本生成有不少漏洞,常常由_art_center>它生成的脚本运行起来会有错误.下面举例阐明:

1. 并没有按照sysdenpends的依靠关系生成SQL代码,而是按照所谓的"优先级"来生成.

比方:他认为view的优先级就要比function高.

那么,我写了下面的测试程序,形成以下的依靠关系:fnT1 <-- vwT1 <-- fnT2

就是,view vwT1处于依靠的中间.





_NOBR> _CODE>create function fnT1()
returns Integer
as
begin
return 123
end
go

create view vwT1
as
select aa=dbo.fnT1()

go

create function fnT2()
returns table
as
return (select * from vwT1)
go_CODE>

_NOBR>

运行到数据库之后,用Enterprise生成SQL代码.要注意选项不一样,生成的代码会有所差别,在这里我没有选数据库和用户.

_NOBR> _CODE>if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fnT1]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fnT1]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fnT2]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fnT2]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vwT1]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[vwT1]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

Create view vwT1
As
Select aa=dbo.fnT1()

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

Create function fnT1()
Returns Integer
As
begin
Return 123
end

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

Create function fnT2()
Returns Table
As
Return (Select * From vwT1)

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO_CODE>

_NOBR>   以上是“SQL脚本生成的一些BUG(1)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 将表数据生成SQL脚本的存储历程
  • SQL脚本生成的一些BUG(2)
  • SQL脚本生成的一些BUG(1)
  • SQL脚本生成的一些BUG
  • <b>mysql导入大的sql脚本</b>
  • sql脚本增添删除表里面字段的实例
  • <b>DBA!你也能写出文雅的SQL脚本</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .