HarshadaBS Ответов: 2

Почему мы не можем бросить табличную переменную (@таблицу), используя синтаксис (падение столом @таблицу)?


Я знаю, что @table падает автоматически. Нам не нужно беспокоиться об этом. Но мне нужна причина, почему мы не можем явно отбросить табличную переменную?

Что я уже пробовал:

Я искал в Google, но не нашел подходящего ответа.

Santosh kumar Pithani

https://stackoverflow.com/questions/11857789/when-should-i-use-a-table-variable-vs-temporary-table-in-sql-server

Santosh kumar Pithani

Больше не публикуйте подобные вопросы...

HarshadaBS

@santosh Kumar сэр .. Почему? Я искал везде, но каждый дает сложные ответы, которые трудно понять. Вот почему я написал здесь

Santosh kumar Pithani

Переменные таблицы(@table) - это не объекты схемы(таблицы,хранимые процедуры и т. д.) для постоянного хранения в базе данных, поэтому мы не можем ее отбросить.Это очень простой вопрос, на который легко найти ответ. Пример :-Declare @a int=12 --Здесь мы не можем отбросить переменную, но мы можем прочитать ее очень быстро в sql-скрипте.

Suvendu Shekhar Giri

Вы не можете удалить переменную таблицы, поскольку она все еще является переменной. На них также не влияют транзакции.

Laxmidhar tatwa technologies

Если таблица связана с ключом forgein и значения хранятся в дочерней таблице

вы не должны уронить стол

HarshadaBS

Спасибо Сувенду, сэр, и лаксмидхару, сэр. Это помогло мне понять причину моего вопроса.

2 Ответов

Рейтинг:
2

ZurdoDev

Как уже упоминалось в комментариях, это переменная, и ее нельзя отбросить. Он не хранится в одном и том же месте. Простой ответ: "потому что это переменная."


HarshadaBS

Да. Я понял.

Рейтинг:
0

Member 14996704

Объяснение довольно простое, как и решение. Вы не можете выполнить или получить переменную recongnized, потому что когда вы вводите drop table @yourcreatedvariable, вы на самом деле пытаетесь удалить временную таблицу, что, как я полагаю, не так.

Попробовать это

Объявите @myvar NVCHAR(50), @dropStatement NVCHAR(100)
SET @myvar = 'yourTableName'
SET @dropStatement = 'drop table' + @myvar

старпома sp_sqlexec @dropStatement

Хосе