Ich habe erfolgreich die folgende Funktion für die SQL-Datenbank erstellt.SQL-Funktion nicht in der richtigen SQL-Datenbank erstellt
CREATE FUNCTION [dbo].[maximum_time]
(
@TotalLengthofRecords REAL
)
RETURNS FLOAT
AS
BEGIN
RETURN
CASE
WHEN @TotalLengthofRecords > 3600 THEN 3600
ELSE @TotalLengthofRecords
END
END
die Objekte in Microsoft SQL Server Management Studio überprüfen, so scheint es, dass die benutzerdefinierte Funktion in den System Database -> master
erfolgreich erstellt wurde. Die Funktion wird jedoch nicht in der Projektdatenbank angezeigt.
Jedes Mal, wenn ich versuche, um die Funktion aufzurufen mit dem folgenden Code:
SELECT
A.*,
[dbo].[maximum_time]([TotalLengthofRecords_MAX])AS [TotalLengthofRecords_MAX]
INTO [dbo].[BunkerAISFinal_V7]
FROM [dbo].[BunkerAISFinal_V6] AS A;
Das System wird die folgenden Fehler werfen:
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.maximum_time", or the name is ambiguous.
Wie löse ich dieses Problem? Gibt es eine Möglichkeit, die Funktion in einem bestimmten Datenbanknamen zu erstellen?
Versuchen Sie, [hier] (http://stackoverflow.com/questions/2091830/cannot-find-either-column -dbo-oder-der-Benutzer-definierte-Funktion-oder-Aggregat-dbo-s). Gleiches Problem. Kann dir helfen. –
Ich habe mir die Post angeschaut. Es ist ein anderes Problem, weil ich glaube, dass meine Funktion eine "skalarwertige Funktion" sein sollte. – Cloud
* Es scheint, dass die benutzerdefinierte Funktion in der Systemdatenbank erfolgreich erstellt wurde -> master *. Das mag sein, aber es wurde in der Datenbank erstellt, die zu der Zeit unter dem Account des DB-Besitzers (dbo) verwendet wurde. Vielleicht sollten Sie das Konzept von 'use' verstehen und was '[dbo]' bedeutet, bevor Sie es nur zufällig in Ihr SQL einfügen? –