kyo*_*ryu 0 t-sql sql-server sql-server-2008-r2
我正在尝试创建一个函数,我已经在数据库中拥有该函数.为了绕过这个我正在使用drop函数,但我仍然继续在数据库中获得'theres already object'的命名'getCost'.可能是什么原因?
查询:
USE DWDB_PROPER;
GO
IF OBJECT_ID (N'dbo.getCost', N'TF') IS NOT NULL
DROP FUNCTION dbo.getCost;
GO
CREATE FUNCTION getCost(@person VARCHAR(10), @month TINYINT, @year SMALLINT, @Category VARCHAR(20))
RETURNS INT
AS
BEGIN
--function body here
Run Code Online (Sandbox Code Playgroud)
你的是一个标量函数,因为它只返回一个值所以在if子句中你应该提到FN而不是TF.阅读这个
USE DWDB_PROPER;
GO
IF OBJECT_ID (N'dbo.getCost', N'FN') IS NOT NULL
DROP FUNCTION dbo.getCost;
GO
CREATE FUNCTION getCost(@person VARCHAR(10), @month TINYINT, @year SMALLINT, @Category VARCHAR(20))
RETURNS INT
AS
BEGIN
--function body here
Run Code Online (Sandbox Code Playgroud)
您将返回单个值而不是表.So RETURNS int是多选标量函数,其中返回表是表值函数