我正在创建一个函数,在输入客户ID时返回客户的全名:
CREATE FUNCTION displayName
(
@customer_id int
)
RETURNS varchar(50)
AS
BEGIN
DECLARE @name varchar(50)
SELECT @name = (SELECT name_first + ' ' + name_last AS FULL_NAME FROM DT_CUSTOMERS WHERE customer_id = @customer_id)
RETURN @name
END
GO
我的代码有问题吗?我怎么运行它?
答案 0 :(得分:1)
通常的做法是定义要在哪个DB中运行查询(您可能位于错误的数据库中,您没有任何权限?)以及要添加到哪个模式: 当这样执行时,它应该可以工作。
USE
databasename_here
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.displayName
(
@customer_id int
)
RETURNS varchar(50)
AS
BEGIN
DECLARE @name varchar(50)
SELECT @name = (SELECT name_first + ' ' + name_last AS FULL_NAME FROM DT_CUSTOMERS WHERE customer_id = @customer_id)
RETURN @name
END
GO
应按如下方式执行:
SELECT
dbo.displayName(column_which_contains_id)
from db.schema.table
答案 1 :(得分:0)
没有用户,它在我的情况下不起作用。
我必须输入dbo.displayName