Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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
Sql 具有单个Int(ID)参数的存储过程_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 具有单个Int(ID)参数的存储过程

Sql 具有单个Int(ID)参数的存储过程,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在尝试学习如何创建和使用SQL Server存储过程,我发现每个示例都使用varchar(xx)作为参数,而从不使用int,例如,如果您希望搜索ID值以选择特定记录,则会使用int,例如在第一个代码示例中 CREATE PROCEDURE GetApplicationStartData @CompanyID int(1) AS SET NOCOUNT ON; SELECT * FROM ApplicationStartData WHERE Co

我正在尝试学习如何创建和使用SQL Server存储过程,我发现每个示例都使用
varchar(xx)
作为参数,而从不使用
int
,例如,如果您希望搜索ID值以选择特定记录,则会使用
int
,例如在第一个代码示例中

CREATE PROCEDURE GetApplicationStartData 
    @CompanyID int(1)
AS
    SET NOCOUNT ON;

    SELECT * 
    FROM ApplicationStartData 
    WHERE CompanyID = @CompanyID
GO
使用此代码执行时,会发生以下错误:

Msg 137,第15级,状态2,程序GetApplicationStartData,第7行
必须声明标量变量“@CompanyID”

以下是Microsoft网站上的一个示例:

CREATE PROCEDURE HumanResources.uspGetEmployeesTest2   
    @LastName nvarchar(50),   
    @FirstName nvarchar(50)   
AS   
    SET NOCOUNT ON;  

    SELECT FirstName, LastName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory  
    WHERE FirstName = @FirstName AND LastName = @LastName  
      AND EndDate IS NULL;  
GO  
以下是
ApplicationStartData
表的设计片段:

CREATE TABLE [dbo].[ApplicationStartData]
(
    [CompanyID] [int] NOT NULL,
    [PrimaryDomainName] [varchar](20) NULL,
    [CompanyName] [varchar](25) NULL,
    [CompanyAddress1] [varchar](25) NULL,
    [CompanyAddress2] [varchar](25) NULL,
    [CompanyCity] [varchar](20) NULL,
    [CompanyState] [varchar](2) NULL,
    [CompanyZIP] [varchar](10) NULL,
    [CompanyPhone1] [varchar](15) NULL,
    [CompanyPhone2] [varchar](15) NULL,
    [CompanyPhone3] [varchar](15) NULL,
    [CompanyFax] [varchar](15) NULL,
    ... and 40 more columns

这是如何做到的?

那么你的问题是什么?我注意到你没有接受任何问题的单一答案。你熟悉这个网站的工作方式吗?您应该接受和投票别人对您的问题提供的答案吗?
int(1)
在SQL Server中无效。
int
类型上没有长度说明符。请将输入参数的名称与查询中的参数进行比较。。。它们不一样。您的存储过程
GetApplicationStartData
定义了一个参数@CustomerID-但在该过程的代码中,您引用了@CompanyID(该参数在参数列表中确实不存在!)。。。。。。。