各位大侠,在存储过程里写函数,怎么实现,最好给个例子,小弟在此谢过。
解决方案 »
- sql语法有问题
- 又一个逻辑问题:外键约束
- SSIS问题
- eclipse怎样连接sqlserver
- vfp6.0生成的dbf文件导入到sql2000中,菜鸟求指教!!
- 求一句简单Sql语句
- 一存储过程问题请教!
- 为什么我用vb写的程序一安装就提示msado25注册出错!换了几台机都不行,
- [DBNETLIB][ConnectionOpen(connect()).]SQL Server不存在或访问被拒绝。
- sql server发邮件,已排队,但是sysmail_event_log表里没有产生进程启动记录,现在把windows日志和代理日志贴出来,大家帮忙看看,谢谢
- 数据库关键字union的使用
- 怎么把这些结果集弄成一条
@fn_name sysname
as
exec('if object_id('''+@fn_name+''')>0 drop function ['+@fn_name+']')
exec('
create function ['+@fn_name+'](
@a int
)
returns int
as
begin
......
return
end'
)
as
beginexec ( 'create function f_test (@s varchar(10))
returns varchar(20)
as
begin
return @s+@s
end
' )
end
goexec p_test
go
select dbo.f_test('sdf')
使用exec觉得一股情况下无什么必要,倒是对LZ为何有此需求感到奇怪,请LZ说说具体情况?
记得,这句话在正式执行之前,只需要执行一次。
truncate table [TB1]
*/--下面这个程序。@page是当前执行的页数,从0开始,@num是每次执行的行数,设定之后不许更改
--@num只要大于0即可,随便多少--@page从0开始,每次加1
--执行成功看结果,正常成功是结果和@num的值一样,当返回结果小于@num时,表示所有记录执行完毕
Pexec @page = 1,@num = 自己设定数值
select * from [TB1] order by id
------不准重复执行,否则就象下面一样乱了
(函数语句当然写在储存过程中)
if exists(select [name] from sys.all_objects where [name] = 'addStudent' and type = 'P')
drop procedure addStudent
--上面两句代码是判断数据库中是否存在名为addStudent的存储过程,存在就删除
go
--创建存储过程
create procedure addStudent
as
begin
insert into student values(071127,'张三',2,'男',2005-120-02,42,'三好学生')
end
--执行存储过程
execute addStudent
--这样就执行了一句insert语句,存储过程,就是把大段的T—sql语句封装成一个函数,用execute调用就执行
--T-SQL语句,就像C#里面调用方法一样
execute 可以简写成exec
procedure 也可以简写成 proc
2.open sql db ---Master
3.open -----user defined functionseg:
create function fn_MSFullText()
returns @retTab table(LCID int)
as
begin
declare @tempLang table(LCID int)
insert @tempLang values (2052) /* Chinese_Simplified */
insert @tempLang values (1028) /* Chinese_Traditional */
insert @tempLang values (1043) /* Dutch */
insert @tempLang values (2057) /* English_UK */
insert @tempLang values (1033) /* English_US */
insert @tempLang values (1036) /* French */
insert @tempLang values (1031) /* German */
insert @tempLang values (1040) /* Italian */
insert @tempLang values (1041) /* Japanese */
insert @tempLang values (1042) /* Korean */
insert @tempLang values (0) /* Neutral */
insert @tempLang values (1053) /* Swedish_Default */ insert @retTab select * from @tempLang
return
end