Значение по умолчанию объявленной переменной всегда равно нулю? - PullRequest
0 голосов
/ 19 июня 2019

Я объявляю много разных типов в SQL и хотел бы знать, всегда ли значение по умолчанию равно null для всех типов.

Declare @example int
Select @example

или

Declare @Example2 varchar(max)
Select @Example2

Это оба значения NULL, и большинство типов, которые я объявляю, по умолчанию являются NULL, есть ли исключения?

Ответы [ 4 ]

1 голос
/ 19 июня 2019

В MySQL:

относится к документации MySQL: https://dev.mysql.com/doc/refman/8.0/en/declare-local-variable.html

Чтобы обеспечить значение по умолчанию для переменной, включите предложение DEFAULT. значение может быть указано как выражение; это не должно быть константой. Если предложение DEFAULT отсутствует, начальное значение NULL.

В SQL Server

Как говорит Microsoft: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/variables-transact-sql?view=sql-server-2017

Когда переменная впервые объявлена, ее значение устанавливается в NULL.

Но история немного другая, когда у меня есть переменная таблицы. Предположим, что у меня есть табличная переменная, как:

DECLARE @testTable AS TABLE
(
    Code INT,
    Firstname VARCHAR(100)
);

В этом случае мы не можем сказать, что @testTable - это переменная, которая инициализируется с помощью NULL. В табличных переменных, когда они объявлены, они представляют собой пустую таблицу, в которой нет данных.

1 голос
/ 19 июня 2019

Не в курсе исключений.Достаточно легко проверить, конечно?

declare @bit bit

if @bit is null
    print 'null'

declare @float float
if @float is null
    print 'null'

declare @geo Geography
if @geo is null
    print 'null'
0 голосов
/ 19 июня 2019

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

Declare @example int=34
Select @example

Результат будет 34. Я не вижу никаких исключений для этого случая ни для каких других типов.

0 голосов
/ 19 июня 2019

Когда вы объявляете какую-либо переменную и не устанавливаете какое-либо значение, оно считается неопределенным, поэтому вы не получите никакого исключения из этого, что означает, что вы получите нулевое значение всегда для всех переменных без установки какого-либо значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...