我目前正在尝试在存储过程中创建的数据库中创建一个函数。
Set @sql = 'USE [' + @dbname + '] GO CREATE FUNCTION dbo.functionname(@trajectid int)
RETURNS int
AS
BEGIN
DECLARE @result int;
(SELECT @result = SUM(duur) FROM AgendaItems WHERE trajectid = @trajectid)
RETURN @result
END'
exec(@sql)
我们想要实现的是使用表定义中的函数(也在存储过程中)
gebruikt AS [dbo].functionname([id]),
我们尝试使用Maindatabase.dbo.functionname,它返回了一个错误:
在此上下文中,用户定义的函数名称不能以数据库名称为前缀。
提前感谢您的帮助。
答案 0 :(得分:2)
很抱歉直截了当,但你不应该使用存储过程来创建DDL - 实际上,系统阻止你这样做,因为它确实是一种不好的做法。
有解决方法,但您应该真正改变处理要创建的流程的方式 - 这将是唯一真正的解决方案