2010-05-09 5 views
1

Вложенная ниже хранимая процедура написана на SQL Server 2005. Моей целью является вызов этого sproc из моего веб-приложения ASP.NEt с помощью элемента управления мастером. Я новичок в SQL Server и особенно для хранимых процедур. Я не уверен, почему мои параметры недоступны для веб-приложения и не отображаются в дереве SSMS в качестве параметра под моим именем sproc. Можете ли вы помочь мне исправить sproc ниже, чтобы параметры были правильно созданы и доступны для использования в моем веб-приложении?Параметры хранимой процедуры не доступны после объявления

Спасибо, Sid

хранимых процедур Синтаксис:

USE [Diel_inventory] 
GO 
/****** Object: StoredProcedure [dbo].[AddQuote] Script Date: 05/09/2010 00:31:10 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER procedure [dbo].[AddQuote] as 
Declare @CustID int, 
@CompanyName nvarchar(50), 
@Address nvarchar(50), 
@City nvarchar(50), 
@State nvarchar(2), 
@ZipCode nvarchar(5), 
@Phone nvarchar(12), 
@FAX nvarchar(12), 
@Email nvarchar(50), 
@ContactName nvarchar(50), 
@QuoteID int, 
@QuoteDate datetime, 
@NeedbyDate datetime, 
@QuoteAmt decimal, 
@ID int, 
@QuoteDetailPartID int, 
@PartNumber float, 
@Quantity int 

begin 

Insert into dbo.Customers 
(CompanyName, Address, City, State, ZipCode, OfficePhone, OfficeFAX, Email, PrimaryContactName) 
Values (@CompanyName, @Address, @City, @State, @ZipCode, @Phone, @FAX, @Email, @ContactName) 

set @CustID = scope_identity() 


Insert into dbo.Quotes 
(fkCustomerID,NeedbyDate,QuoteAmt) 
Values(@CustID,@NeedbyDate,@QuoteAmt) 

set @QuoteID = scope_identity() 


Insert into dbo.QuoteDetail 
(ID) values(@ID) 

set @ID=scope_identity() 



Insert into dbo.QuoteDetailParts 
(QuoteDetailPartID, QuoteDetailID, PartNumber, Quantity) 
values (@ID, @QuoteDetailPartID, @PartNumber, @Quantity) 
END 

ответ

2

Ваш синтаксис немного неправильно (см комментарии):

USE [Diel_inventory] 
GO 
/****** Object: StoredProcedure [dbo].[AddQuote] Script Date: 05/09/2010 00:31:10 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER procedure [dbo].[AddQuote] 
--// notice I just start defining parameters... no DECLARE, and no AS 
@CustID int, 
@CompanyName nvarchar(50), 
@Address nvarchar(50), 
@City nvarchar(50), 
@State nvarchar(2), 
@ZipCode nvarchar(5), 
--//other parameters... 
as 
begin 

-- body of procedure 
end 
+0

Спасибо Джефф! Пармы теперь видны. Теперь получаем ошибку: Невозможно вставить явное значение для столбца идентификатора в таблице «QUOTEDETAIL», если для параметра IDENTITY_INSERT установлено значение OFF. Где я могу изменить Identity_Insert? – SidC

+0

Из того, что я могу сделать из вашей процедуры, ваша таблица QuoteDetail имеет столбец идентификатора, значения которого должны соответствовать последнему вставленному @quoteID, но это автоинкрементный столбец IDENTITY. Это не имеет смысла для меня - я бы предложил, чтобы кто-то, кто знаком с обзором приложения, использует таблицу QuoteDetail. Вот ссылка, как это сделать -http: //msdn.microsoft.com/en-us/library/aa259221 (SQL.80) .aspx - но это просто не похоже на правильную вещь. –

Смежные вопросы