阅读文章

DTS--在变量或是在临时表和表变量中使用Input Global Variables

[日期:2006-07-18] 来源:  作者: [字体: ]

一直以为DTS的Execute SQL Task中不能将Input Global Variables的值赋给变量或是在临时表和表变量中使用, 比如:

declare @cid int
declare @cvalue varchar(20)
set @cid = ?
set @cvalue = ?
delete from CDTemp
where ConditionalID = @cid and conditionalvalue = @cvalue

这样写的话是没有办法设置这两个Input Global Variables的名字的, 因为这段script的parse过不了. 为什么过不了呢? 我 猜 是因为变量是动

态declare的, 而不是DB中已经存在的对象, 因此sql server没有办法确定这段script是否正确.
其实我们可以bypass sqlserver的parse的 :)
我们先写这样一段:
Delete CDTemp
Where ConditionalID = ? and conditionalvalue = ?
然后设置两个Input Global Variables的名字 然后删除这句script, 将上面的那段script  copy进来, 直接OK

事实证明这是可行的
同理, 在临时表和表变量中也可以使用Input Global Variables
eg:
input #Temp (cid, cvalue)
values (?, ?)



阅读:
录入:blue1000

评论 】 【 推荐 】 【 打印
上一篇:著名的SQL流量注入(SQL注入)攻击法
下一篇:Access转MS SqlServer的注意事项
相关文章      
本文评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款