Sql 具有单个Int(ID)参数的存储过程
我正在尝试学习如何创建和使用SQL Server存储过程,我发现每个示例都使用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
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(该参数在参数列表中确实不存在!)。。。。。。。