首页 > 解决方案 > 具有单个 Int (ID) 参数的存储过程

问题描述

我正在尝试学习如何创建和使用 SQL Server 存储过程,我发现那里的每个示例都varchar(xx)用作参数,而不是int使用 ,例如,如果您想搜索用于选择特定记录的 ID 值,例如在第一个代码示例中。

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

    SELECT * 
    FROM ApplicationStartData 
    WHERE CompanyID = @CompanyID
GO

使用此代码,执行时会出现以下错误:

消息 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

这是如何实现的?

标签: sqlsql-servertsql

解决方案


推荐阅读