使用 SQL 服务器功能的更好方法?

Better way to use SQL Server function?

大家好,我想使用 SQL 服务器功能,

我从不在 SQL 服务器中使用函数,我只知道函数必须 return 一个值,所以我有两个存储过程 (1 for insert and 1 for select)

我的存储过程是这样的

对于插入:

create proc INS_tblteststud  
@stdtid int=null,  
@name varchar(50) =null,  
@fullname varchar(50)=null,  
@address varchar(50)=null,  
@city varchar(50)=null,  
@country varchar(50)=null,  
@contno varchar(50)=null
as  
begin  
insert into tbl_student_test(name,fullname,address,city,country,contno)  
values  
(@name,@fullname,@address,@city,@country,@contno)  
end

对于select:

Create proc SEL_tblteststud  
as
begin
select * from tbl_student_test
end

现在我想知道,如何将这些语句(Insert, Select) 转换成函数?存储过程和函数哪个更好?

您正在混合使用 过程函数...

  • 一个程序是为了某事
  • 函数仅供阅读

不允许在函数中放置数据更改命令。

你正在尝试的是不可能的...

更新关于函数和过程的一些见解

函数一共有三种

  • 标量函数:Return 一个标量值并且性能非常差
  • 多语句table值函数(BEGIN ... END):Return一个结果集,但表现也很差
  • 内联 table 值函数:它们很棒,但有限制。将它们想象成带有预编译参数
  • VIEW

程序也有一个return值,属于INT类型,不用于returnSP的结果,而是一种执行状态。

SP 可能只是做了一些事情而 return 根本没有任何程序结果。如果你想要 return 程序结果,你必须使用

  • 输出参数
  • 或者您必须在您的 SP 中调用 SELECT。可以从外部抓取一个内部SELECT的结果,但是这样很麻烦...