Возврат константы BIT из хранимой процедуры SQL - PullRequest
4 голосов
/ 23 февраля 2011

ОК, я пытаюсь вернуть константу BIT из хранимой процедуры.

Единственный способ получить это для компиляции - использовать приведение:

CAST(0 AS BIT) AS MyBool

Есть ли более эффективный способ написать это без приведения?

Ответы [ 2 ]

5 голосов
/ 23 февраля 2011

Некоторые люди предпочитают делать следующее

declare @True bit,@False bit
set @True = 1
set @False = 0

А затем используйте @True или @False для оставшейся части их запроса.

Я полагаю, что после компиляции разница в эффективности между этими двумя методами настолько мала, что вы можете спокойно написать ее в любом стиле, который вы предпочитаете.

1 голос
/ 23 февраля 2011

Не так, как я знаю.
При выводе типов данных SQL-сервер делает что-то волшебное, но обычно он ошибается, поэтому

Select 0

всегда выбирает целое число, никогданемного или крошечный

...