Табличные значения SQL Server - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь создать табличный параметр для ввода в хранимый процесс MS SQL Server.Мой оператор создания:

CREATE TYPE dbo.tvt_AbusedBy AS TABLE  
( Assessment_Behavorial_AbusedID int, Assessment_BehavorialID int,
  Ref_Abuse_TypeID int, Abuser_Name varchar(50), GenderID int,
  Relationship_TypeID int, Age int)  

При попытке добавить в качестве параметра в proc:

CREATE PROCEDURE [dbo].[qryAddUpdateMultipletblAssessment_Behavorial_Abused] 
@prm_Assessment_Abused AS dbo.tvt_AbusedBy READONLY,

Я получаю сообщение об ошибке «Параметр @prm_Assessment_Abused не может быть объявлен READONLY, так как онне параметр с табличным значением ".

Кажется, он не распознает его как параметр с табличным значением.

Если я удалю условие READONLY, оно выдаст мне ошибку" Параметр или переменная @prm_Assessment_Abusedимеет недопустимый тип.

Должна быть проблема с тем, как я пытаюсь создать табличный тип параметра.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Из документации MS - https://docs.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql?view=sql-server-2017 Вам не нужен AS перед параметрами, используйте его после объявления параметров.

Пример по ссылке (немного отредактировано):

CREATE PROCEDURE dbo.usp_add_kitchen 
@dept_id int, @kitchen_count int NOT NULL  
AS  
BEGIN
  UPDATE dbo.Departments  
  SET kitchen_count = ISNULL(kitchen_count, 0) + @kitchen_count  
  WHERE id = @dept_id  
END;  
GO  
0 голосов
/ 28 ноября 2018

Не использовать AS при добавлении параметров в объявлении хранимой процедуры:

CREATE PROCEDURE [dbo].[qryAddUpdateMultipletblAssessment_Behavorial_Abused] 
  @prm_Assessment_Abused dbo.tvt_AbusedBy READONLY
...