小编Jac*_*ost的帖子

如何授予对表值函数的权限

我做得对吗……?

我有一个返回钱的函数...

CREATE FUNCTION functionName( @a_principal money, @a_from_date
  datetime, @a_to_date datetime, @a_rate float )  RETURNS money AS BEGIN

  DECLARE @v_dint money   set @v_dint = computation_here
     set @v_dint = round(@v_dint, 2)

  RETURN @v_dint    
END 
GO 
Grant execute on functionName to another_user 
Go
Run Code Online (Sandbox Code Playgroud)

我只是想知道这是否可以转换为 iTVF?

我试过这样做,但出现错误:

CREATE FUNCTION functionName ( @a_principal money, @a_from_date
  datetime, @a_to_date datetime, @a_rate float )  
RETURNS TABLE AS 
RETURN SELECT returnMoney = computation_here  
GO  
Grant execute on functionName to another_user  Go
Run Code Online (Sandbox Code Playgroud)

错误:

消息 4606,级别 16,状态 1,第 2 行授予或撤销特权 …

sql-server functions

24
推荐指数
1
解决办法
8万
查看次数

获取所有 CONVERT(datetime) 样式(格式)

我知道问这个问题有点愚蠢,但是否有 Transact-SQL 函数或任何返回所有CONVERT(datetime)样式(格式)的函数?类似的东西fnDateFormats将返回所有日期格式:

输出:

日期格式 | SQL代码
月/日/年 101

等等。

sql-server t-sql date-format

3
推荐指数
1
解决办法
2550
查看次数

游标在内部做什么?

我正在优化用游标编写的存储过程(DECLARE cur_name CURSOR ...

客户看到这个 SP 运行了一天多,所以我的经理分配给我。

搜索时,我使用表变量和 while 循环来迭代每条记录。

令我惊讶的是,两者之间的差异是巨大的。

有人告诉我,while 循环本质上是一个 CURSOR。

但是当我使用带有 WHILE LOOP 的表变量时,它运行得非常非常快。

现在,游标在内部做了什么?

sql-server stored-procedures

0
推荐指数
1
解决办法
496
查看次数