使用T-SQL中的函数接受输入参数
我有这个脚本可以执行,但我需要它接受用户输入,而不是为@lastName设置变量 我试图把我认为有用的东西弄乱,但没有。我犯了错误 '过程或函数dbo.diplayCount的参数太多' 我确信这是一件简单的事情,因为我是如此的新,我看不到它。谢谢你的帮助 CREATE FUNCTION displayCount(@lastName VARCHAR(40)) RETURNS INT AS BEGIN DECLARE @number INT; SELECT @number = COUNT(*) FROM Person.Person WHERE LastName = @lastName; RETURN @number; END GO SELECT dbo.displayCount('Ferrier') as howMany使用T-SQL中的函数接受输入参数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有这个脚本可以执行,但我需要它接受用户输入,而不是为@lastName设置变量 我试图把我认为有用的东西弄乱,但没有。我犯了错误 '过程或函数dbo.diplayCount的参数太多' 我确信这是一件简单的事情,因为我是如此的新,我看不到它。谢谢你的帮助 CREATE FUNCTION displayCount(@lastName VARCHAR(40)) RETURNS INT AS BEGIN DECLARE @number INT; SELECT @number =
您的函数看起来很好,但我想您需要使用ALTER而不是CREATE,因为该函数已经存在于数据库中 您需要修改而不是创建
ALTER FUNCTION displayCount(@lastName VARCHAR(40)) RETURNS INT
AS
BEGIN
DECLARE @number INT;
SELECT @number = COUNT(*) FROM Person.Person
WHERE LastName = @lastName;
RETURN @number;
END
GO
SELECT dbo.displayCount('Ferrier') as howMany
在SSMS中,展开[您的数据库]>可编程性文件夹>函数文件夹>表值函数>右键单击>新建内联表值函数
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE FUNCTION displayCount
(
@lastName varchar(40)
)
RETURNS TABLE
AS
RETURN
(
SELECT COUNT(*) AS howMany
FROM Person.Person
WHERE LastName = @lastName
)
GO
那就打电话过去吧
从dbo.displayCount'Ferrier'中选择多少个很抱歉,键入问题时只是输入错误。是的,我同时意识到了这一点。我讨厌成为新手,但这是一种学习体验。您使用的是SQL Server Management Studio吗?是的,我使用的是SQL Server Management为什么选择将OP的标量函数更改为表值函数?任何一个都可以接受参数。谢谢HABO,更像是我不知道标量函数的用法的事后诸葛亮。我学到了一些新东西。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION displayCount ( @lastName varchar(40) ) RETURNS TABLE AS RETURN ( SELECT COUNT(*) AS howMany FROM Person.Person WHERE LastName = @lastName ) GO