sql存储过程print
① sql server存储过程用print就能打印,mysql存储过程能打印么应该也行吧,但是找不到呢
每种语言都有自己的特色:
sqlserver 可以 print,可以直接select 返回数据。
其他语言不一定能行的。
比如Oracle,就不能直接select,不能直接print返回数据,只能通过其他函数显示在控制台上,无法返回。
mysql我不熟悉,但我想不一定有这种功能,用这个试试:
好像Mysql存储过程中没有打印语句,可以用select 来代替,比如:
select @var;
在换不同语言的时候,旧的习惯会很困扰我们的。
② 在sql存储过程中Print如何来设置时间
如果是判断存储过程的运行时间,那么你@BeginTime2应该是在运行开始时,赋为当前日期值,在存储过程最后打印,实际基本可以判断出运行的分钟数了吧。
日期类型需要转换为字符串才能和字符串拼接
Convert(varchar(20),getdate(),20) 是日期转换字符串的转换函数其中最后的20是字符串格式化参数,比如Convert(varchar(20),getdate(),113),Convert(varchar(20),getdate(),120)都可以转换为不同格式的日期显示格式
Cast是强制类型转换,在这里是将int类型转换为字符串,使用方式举例:cast (123 as varchar) ,cast('2434' as int) 具体可以看看SQL帮助(查询分析器按F1)
Datediff是日期比较函数, 其中mi指两个时间的分钟差额,返回的是int类型,如果要拼到字符串中,也需要转换为字符串.datediff还可以判断相差的天数:
datediff(dd,'2010-12-25',getdate()) 年数、秒数等等,具体可以参考帮助和自己动手实验了。
③ 如何使用print打印sql server存储过程脚本
如何使用print打印sql server存储过程脚本
使用PRINT一般是写程序时观察中间结果,对于你说的这种情况,可以直接用SELECT输出结果,在存储过程里也可以这样。如果是在函数或者触发器里,可以建个测试表,如果是表值函数则可以定义一个表变量。
如果一定要print,那么这样吧:
delcare @number int
declare @course nvarchar(30) --for example
select @number=number,@course=course from choice where studentnumber = '20100001'
print @number
print @course
④ 如何可以打印(显示)出存储过程中的SQL字符串
你可以在他注释--print @sql那里加上一句
select @sql
在下面就可以看到sql语句了,不过你要设置栏位的长度
或者之间就print @sql
在消息栏里就可以看见语句了
⑤ sql语句编写存储过程,使用游标循环打印学生表中的数据,求大神
写一个例子给楼主看下就知道了:
在sqlserver2000中新建一个存储过程:
CREATEPROCEDUREPK_Test
AS
//声明1个变量
declare@namenvarchar(20)
//声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同
//打开游标
openmycursor
//从游标里取出数据赋值到我们刚才声明的2个变量中
fetchnextfrommycursorinto@name
//判断游标的状态
//0fetch语句成功
//-1fetch语句失败或此行不在结果集中
//-2被提取的行不存在
while(@@fetch_status=0)
begin
//显示出我们每次用游标取出的值
print'游标成功取出一条数据'
print@name
//用游标去取下一条记录
fetchnextfrommycursorinto@name
end
//关闭游标
closemycursor
//撤销游标
deallocatemycursor
GO
⑥ 在SQL中存储过程的一般语法是什么
1、 创建语法
createproc|procerepro_name
[{@参数数据类型}[=默认值][output],
{@参数数据类型}[=默认值][output],
....
]
as
SQL_statements
2、 创建不带参数存储过程
--创建存储过程
if(exists(select*fromsys.objectswherename='proc_get_student'))
dropprocproc_get_student
go
createprocproc_get_student
as
select*fromstudent;
--调用、执行存储过程
execproc_get_student;
3、 修改存储过程
--修改存储过程
alterprocproc_get_student
as
select*fromstudent;
4、 带参存储过程
--带参存储过程
if(object_id('proc_find_stu','P')isnotnull)
dropprocproc_find_stu
go
createprocproc_find_stu(@startIdint,@endIdint)
as
select*fromstudentwhereidbetween@startIdand@endId
go
execproc_find_stu2,4;
5、 带通配符参数存储过程
--带通配符参数存储过程
if(object_id('proc_findStudentByName','P')isnotnull)
dropprocproc_findStudentByName
go
createprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')
as
select*fromstudentwherenamelike@nameandnamelike@nextName;
go
execproc_findStudentByName;execproc_findStudentByName'%o%','t%';
(6)sql存储过程print扩展阅读:
SQL存储过程优点:
1、重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
2、减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
3、安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
⑦ sqlserver2005中,为什么在存储过程中使用print不起作用。
你不执行 存储过程 怎么输出 你上面的只是 创建而已 exec proc_test
执行你的存储过程
⑧ 使用SQL语句创建存储过程
使用SQL语句创建存储的具体过程如下:
1、首先,打开企业管理器,选择【工具】-【查询分析器】: