Как я могу сказать, или ли объект статически динамично выделяется на конструкторе? [дубликат]

CREATE PROCEDURE [dbo].[USP_StudentInformation]
@S_Name VARCHAR(50)
,@S_Address VARCHAR(500)
AS
BEGIN
SET NOCOUNT ON;

DECLARE @Date VARCHAR(50)

SET @Date = GETDATE()


IF EXISTS (
        SELECT *
        FROM TB_StdFunction
        WHERE S_Name = @S_Name
            AND S_Address = @S_Address
        )
BEGIN
    UPDATE TB_StdFunction
    SET S_Name = @S_Name
        ,S_Address = @S_Address
        ,ModifiedDate = @Date
    WHERE S_Name = @S_Name
        AND S_Address = @S_Address

    SELECT *
    FROM TB_StdFunction
END
ELSE
BEGIN
    INSERT INTO TB_StdFunction (
        S_Name
        ,S_Address
        ,CreatedDate
        )
    VALUES (
        @S_Name
        ,@S_Address
        ,@date          
        )

    SELECT *
    FROM TB_StdFunction
END
END
<ч>
Table Name :   TB_StdFunction


S_No  INT PRIMARY KEY AUTO_INCREMENT
S_Name nvarchar(50)
S_Address nvarchar(500)
CreatedDate nvarchar(50)
ModifiedDate nvarchar(50)
1
задан Community 23 May 2017 в 11:55
поделиться

3 ответа

Если ваш код странным образом является одношаговым, это может иногда быть вызвано просто сломанным файлом pdb. «Перестроить все» в вашем коде будет регенерировать его с нуля и вылечить любые такие сбои.

Еще одна вещь, о которой следует помнить, - это то, что остановка одного потока в отладчике может вызвать различные необычные временные интервалы, которые вы не увидите в сборка выпуска. Например:

  • Последовательный порт всегда будет продолжать работать (на уровне оборудования / драйвера), пока вы остановились на точке останова - когда вы в следующий раз попытаетесь выполнить пошаговое выполнение кода, он может получить внезапный огромный пакет данных. С асинхронными обратными вызовами это может быть «интересно».

  • Остановка одного потока нарушает нормальное временное разделение, так что синхронизация потока с потоком может быть нарушена.

2
ответ дан 3 September 2019 в 01:22
поделиться

Любой конструктор может использоваться для статического или динамического распределения. Вы не можете заставить пользователя объекта использовать конкретный конструктор, каким бы способом он не выделял объект.

0
ответ дан 3 September 2019 в 01:22
поделиться

Я не думаю, что вы можете сказать это в конструкторе.

Не знаю, поможет ли это, но вы можете предотвратить статическое создание объекта, сделав деструктор закрытым. Вам также понадобится общедоступное «Удалить»

0
ответ дан 3 September 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: