Значения столбцов как ввод хранимой процедуры - PullRequest
0 голосов
/ 25 июня 2018

У меня следующий код при вводе параметров для SP:

USE [MDAmanager]
GO

DECLARE @return_value int

EXEC    @return_value = [dbo].[spCougarExport]
        @PropertyCodeString = NULL,
        @Date = NULL,
        @InferDate = NULL,
        @TransactionCodeString = NULL

SELECT  'Return Value' = @return_value

GO

Для @PropertyCodeString я хотел бы передать значения из отдельной таблицы со всеми кодами свойств.

Ниже приведен пример кодов недвижимости

enter image description here

Я пытаюсь добиться, чтобы SP всегда возвращал все свойства и не требовал обновления кодов свойств при добавлении нового свойства.

Любая помощь или направление будет принята с благодарностью.

1 Ответ

0 голосов
/ 25 июня 2018

Предполагая, что вы можете изменить свой SP, вы можете использовать пользовательский тип таблицы, например,

CREATE TYPE [dbo].[PropertyCode_UDT] AS TABLE
(   [PropertyCode] [bigint] NOT NULL
)
GO

DECLARE @PCTab [dbo].[PropertyCode_UDT]
;

INSERT INTO @PCTab
(   [PropertyCode]
)
SELECT PC.[PropertyCode]
FROM [dbo].[PropertyCode] PC
;

DECLARE @return_value int

EXEC    @return_value = [dbo].[spCougarExport]
    @PropertyCode  = @PCTab,
    @Date = NULL,
    @InferDate = NULL,
    @TransactionCodeString = NULL
;

Необходимо изменить ваш Sp, чтобы он принимал правильный тип для @PropertyCode, и вы можете просто присоединить свой запрос к SP в этой таблице, чтобы получить все коды свойств

Например

CREATE PROCEDURE [dbo].[spCougarExport]
    @Date [date]
,   @InferDate [date]
,   @TransactionCodeString [nvarchar] (MAX)
,   @PropertyCode PropertyCode_UDT READONLY
AS BEGIN;
.......
SELECT ...
FROM @PropertyCode atPC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...