У меня есть процедура, которая возвращает ошибку:
Должен объявить переменную таблицы "@PropIDs".
Но за ним следует сообщение:
(затронуто 123 строки (строк))
Ошибка появляется, когда я выполняю ее с помощью
EXEC [dbo].[GetNeededProperties] '1,3,5,7,2,12', '06/28/2013', 'TT'
Но отлично работает, когда
EXEC [dbo].[GetNeededProperties] NULL, '06/28/2013', 'TT'
Может кто-нибудь мне помочь? Процедура:
CREATE PROCEDURE [dbo].[GetNeededProperties]
@NotNeededWPRNs nvarchar(max), --string like '1,2,3,4,5'
@LastSynch datetime,
@TechCode varchar(5)
AS
BEGIN
DECLARE @PropIDs TABLE
(ID bigint)
Declare @ProductsSQL nvarchar(max);
SET @ProductsSQL = 'Insert into @PropIDs (ID)
SELECT [WPRN] FROM [dbo].[Properties] WHERE(WPRN in (' + @NotNeededWPRNs + '))'
exec sp_executesql @ProductsSQL
SELECT p.WPRN AS ID,
p.Address AS Address,
p.Address AS Street
FROM [dbo].[Properties] AS p
WHERE
p.WPRN NOT IN( SELECT ID FROM @PropIDs)
Я нашел свое решение при объявлении таблицы следующим образом:
IF OBJECT_ID('#PropIDs', 'U') IS NOT NULL
DROP TABLE #PropIDs
CREATE TABLE #PropIDs
Но когда вы выполняете процедуру с С# (linq sql), она возвращает ошибку