我已经在SQL数据库上成功创建了以下函数。未在正确的SQL数据库中创建SQL函数
CREATE FUNCTION [dbo].[maximum_time]
(
@TotalLengthofRecords REAL
)
RETURNS FLOAT
AS
BEGIN
RETURN
CASE
WHEN @TotalLengthofRecords > 3600 THEN 3600
ELSE @TotalLengthofRecords
END
END
回顾在Microsoft SQL Server Management Studio中的对象,似乎是用户定义的函数已在System Database -> master
创建成功。但是,该功能没有出现在项目数据库中。
每当我尝试使用下面的代码来调用该函数:
SELECT
A.*,
[dbo].[maximum_time]([TotalLengthofRecords_MAX])AS [TotalLengthofRecords_MAX]
INTO [dbo].[BunkerAISFinal_V7]
FROM [dbo].[BunkerAISFinal_V6] AS A;
系统会扔了以下错误:
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.maximum_time", or the name is ambiguous.
我该如何解决这个问题?有没有在特定数据库名称中创建函数的方法?
试试看[这里](http://stackoverflow.com/questions/2091830/cannot-find-either-column -dbo或 - 所述用户自定义函数或 - 聚集体 - DBO-S)。同样的问题。可以帮助你。 –
我看过帖子。这是一个不同的问题,因为我相信我的函数应该是一个“标量函数”。 – Cloud
*似乎在系统数据库 - > master *中成功创建了用户定义的功能。这可能是,但它是在数据库所有者(dbo)的帐户下在当时使用的任何数据库中创建的。也许你应该理解'use'的概念,以及'[dbo]'在将它们随机插入到SQL中之前的含义? –