Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用T-SQL中的函数接受输入参数_Sql_Sql Server_Tsql - Fatal编程技术网

使用T-SQL中的函数接受输入参数

使用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 =

我有这个脚本可以执行,但我需要它接受用户输入,而不是为@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
您的函数看起来很好,但我想您需要使用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