加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

存储过程必须是批查询中的第一条语句

发布时间:2020-12-12 12:32:09 所属栏目:MsSql教程 来源:网络整理
导读:体验存储过程必须是批查询中的第一条语句的作用 看代码如下: T-SQL ------------------------------------------- --在查询分析器里面执行proc中的语句 use pubs go create proc proc_P as select * from sysobjects go drop proc proc_P --可以正常执行 --

体验存储过程必须是批查询中的第一条语句的作用

看代码如下:

T-SQL
-------------------------------------------
--在查询分析器里面执行proc中的语句
use pubs
go
create proc proc_P as select * from sysobjects
go
drop proc proc_P
--可以正常执行

--下面将这个在master库弄成存储过程,然后执行存储过程是否可以在pubs建立proc_P这个存储过程呢?

---------------master库中创建存储-----------------------------
--制表符 CHAR(9)
--换行符 CHAR(10)
--回车 CHAR(13)

create proc proc_M
as
declare @sql varchar(2000)
set @sql='use pubs'+ CHAR(10) + CHAR(13) +' go create proc proc_P as select * from sysobjects go'
exec(@sql)
go

---------------执行存储过程-----------------------------
exec proc_M

------------------错误信息-------------------------------

服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: 'go' 附近有语法错误。
服务器: 消息 111,级别 15,状态 1,行 3
'CREATE PROCEDURE' 必须是批查询中的第一条语句。
--------------------------------------------------------

'CREATE PROCEDURE' 必须是批查询中的第一条语句阻止了语句的执行。

结论:初越的体验到了存储过程必须是批查询中的第一条语句语法结构的重要性,如若不然就可以跨越数据库建立存储过程,表等,
这样一来的话。其他的库中的数据和信息就很容易被攻击和窃取。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读