T-SQL: Как использовать параметры в динамическом SQL?

Синглтоны решают одну (и только одну) проблему.

Ресурсный конфликт.

Если у вас есть какой-то ресурс, который

( 1 ) может иметь только один экземпляр, и

( 2 ) вам нужно управлять этим единственным экземпляром,

вам нужен синглтон .

Примеров не так много. Файл журнала большой. Вы не хотите просто отказаться от одного файла журнала. Вы хотите очистить, синхронизировать и закрыть его правильно. Это пример единого общего ресурса, которым нужно управлять.

Редко нужен синглтон. Причина, по которой они плохие, заключается в том, что они чувствуют себя глобальными , и они полностью оплачены членом книги GoF Design Patterns .

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

16
задан Tomalak 24 June 2009 в 07:08
поделиться

3 ответа

Параметры необходимо передать в sp_executesql. Подробности см. В MSDN .

...
 WHERE 
    CreatedBy = @p
...

EXECUTE sp_executesql @sql, N'@p UNIQUEIDENTIFIER', @p = @p_CreatedBY
24
ответ дан 30 November 2019 в 17:53
поделиться
DECLARE @ParmDefinition NVARCHAR(500)
SET @ParmDefinition = '@p_CreatedBy UNIQUEIDENTIFIER'

EXEC sp_executesql @sql, @ParmDefinition, @p_CreatedBy = @p_CreatedBy
3
ответ дан 30 November 2019 в 17:53
поделиться

Я не уверен, заполняется ли ваша переменная в строковом или двоичном формате, но вам может потребоваться указать уникальный идентификатор в предложении where. Если вы просто выберете поле uniqueidentifier, оно вернется в виде строки или двоичного файла?

0
ответ дан 30 November 2019 в 17:53
поделиться
Другие вопросы по тегам:

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