首页 新闻 会员 周边 捐助

请问这个存储过程是什么意思?

0
悬赏园豆:10 [已解决问题] 解决于 2012-08-10 15:34
USE [JFHZP]
GO
/****** Object:  StoredProcedure [dbo].[JF_exec_sql]    Script Date: 07/12/2012 17:44:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER  procedure [dbo].[JF_exec_sql]
 @sql nvarchar(1000)
as
 exec(@sql)

其中:@sql为:select *from Table1 where name='lhard'

我新学习存储过程,请您详细些好吗.谢谢您了.

wbfans的主页 wbfans | 初学一级 | 园豆:129
提问于:2012-07-12 18:09
< >
分享
最佳答案
0

语句是在数据库

JFHZP 中
当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔

修改了名为dbo.JF_exec_sql的存储过程(dbo为表的所有者),设置了一个参数 @sql 参数数据类型(长度):nvarchar(1000)

存储过程的内容是执行 @sql 这个参数,返回执行结果。
Shannon | 小虾三级 |园豆:611 | 2012-07-19 10:23
其他回答(3)
3

@sql 是这个存储过程的参数

exec(@sql) 是执行@sql这个参数中的SQL语句

收获园豆:10
dudu | 园豆:29732 (高人七级) | 2012-07-12 18:18
GO
ALTER  procedure [dbo].[JF_exec_sql]
其实这个存储过程就是为了查询符合某些where条件的语句,但为什么要用alter修改存储过程呢?
这个存储过程最后返回的是满足select *from table1 where name='lhard'的表吗?
支持(0) 反对(0) wbfans | 园豆:129 (初学一级) | 2012-07-13 14:28
0

这个过程翻译成汉语是:

你传给我一句最大长度为1000字符的SQL语句,我给你执行。

 

你可以用 exec JF_exec_sql 'select *from Table1 where name='lhard''

执行一下看看效果

幽灵~ | 园豆:268 (菜鸟二级) | 2012-07-13 09:45
0

这个是个修改存储过程的的sql语句,

修改过后,这个存储过程的就是传入sql语句,然后执行它。

chenping2008 | 园豆:9836 (大侠五级) | 2012-07-13 09:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册