我当前正在尝试在存储过程中创建的数据库中创建一个函数。
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,但返回了错误:
A user-defined function name cannot be prefixed with a database name in this context.
预先感谢您的帮助。
最佳答案
很抱歉直截了本地说,您根本不应该使用存储过程来创建 DDL - 事实上,系统正在阻止您这样做,因为这确实是一种不好的做法。
有解决方法,但您应该真正改变处理您想要创建的流程的方式 - 这将是唯一真正的解决方案
关于SQL Server存储过程,创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467076/