Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
Доброго времени суток ! Ответьте на такой вопрос, можно ли в хп в переменной указать имя таблицы т.е вот пример
16 июн 16, 11:41    [19299496]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
https://www.sql.ru/faq/faq_topic.aspx?fid=104
16 июн 16, 11:43    [19299510]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
https://www.sql.ru/faq/faq_topic.aspx?fid=104
16 июн 16, 11:43    [19299512]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
допустим есть таблица которую нужно создать при помощи хп..
могу ли я указать вот так..

create procedure ins_cost
(
@Имя_таблицы varchar(20),

)
as
begin
create table @Имя_таблицы( Location geography not null,
Time datetime not null,
VehicleID int not null foreign key references Vehicles(VehicleID),
Speed real not null,
IsIgnition bit not null,
IsIgnition2 bit null,
SatelliteCount int null,
Temperature real null,
IsMainPower bit null,
DateModify datetime not null,
FuelCount2 real null,
Voltage smallint null,
FuelCount real null,
ColFuelLiters real null,
flow_sensor float null,
flow_sensor2 float null,
z smallint not null,
bearing smallint not null
constraint pk_rec_test primary key clustered (time asc,VehicleID asc),
)
end
go

как то так...
16 июн 16, 11:45    [19299518]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
Гавриленко Сергей Алексеевич,

О вроде такое, спасибо за подсказку ! )
16 июн 16, 11:46    [19299523]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
ilya_hin,

нет. Хотите имя таблицы в динамике - делайте CREATE TABLE в динамике
16 июн 16, 11:46    [19299526]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
TaPaK,

Это, как ? Можете показать пример. Извините за такой вопрос.
16 июн 16, 11:50    [19299543]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
ilya_hin,

точно так же как вам указали, только не select *
16 июн 16, 11:52    [19299555]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
Спасибо, буду разбираться
TaPaK
ilya_hin,

точно так же как вам указали, только не select *
16 июн 16, 11:54    [19299570]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
ilya_hin,

постоянные таблицы создаются на этапе проектирования базы, а не по ходу работы бизнес-логики.
16 июн 16, 12:25    [19299765]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
Еще такой вопрос, создаю таблицу, все отрабатывает, делаю refresh но таблицы нету. В чем моя ошибка, подскажите !

create procedure create_table
(
@name_table varchar(50)
)
as
begin
set @name_table = 'create table test.dbo.test1 (name varchar(20))'
end
go

drop procedure create_table

exec create_table @name_table = 'rrrr'
16 июн 16, 14:01    [19300248]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
ilya_hin,

что-то странное у вас в запросе :) вы ищите таблицу 'rrrr' после "refresh"?
16 июн 16, 14:02    [19300263]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2385
Блог
ilya_hin,

commit;?
16 июн 16, 14:06    [19300280]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
я и test1 искал ))
TaPaK
ilya_hin,

что-то странное у вас в запросе :) вы ищите таблицу 'rrrr' после "refresh"?
16 июн 16, 14:06    [19300285]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
ну ерунду написали, чего вы хотите то:

create procedure create_table
(
  @name_table varchar(50)
)
as
begin
set @name_table = 'create table test.dbo.test1 (name varchar(20))'
end
go

drop procedure create_table

exec create_table @name_table = 'rrrr'
16 июн 16, 14:07    [19300297]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
Msg 3902, Level 16, State 1, Procedure create_table, Line 8
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION. Выплывает такая ошибка
Павел Воронцов
ilya_hin,

commit;?
16 июн 16, 14:09    [19300301]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
set @name_table = 'create table test.dbo.test1 (name varchar(20))'

ну хорошо, какой-то текст вы создали, exec его делать будем или и так сойдёт?
16 июн 16, 14:12    [19300315]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Павел Воронцов
ilya_hin,

commit;?

конём ходи :)
16 июн 16, 14:14    [19300328]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
TaPaK
set @name_table = 'create table test.dbo.test1 (name varchar(20))'

ну хорошо, какой-то текст вы создали, exec его делать будем или и так сойдёт?


Тс-с-с, не давайте вредных советов, пусть процедура не работает и аффтор начнет-таки думать, что так поступать не следует.
16 июн 16, 14:15    [19300330]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
Эмм.. извините, exec @name_table ну это же переменная. Заранее прошу меня извинить, за мои вопросы )
TaPaK
set @name_table = 'create table test.dbo.test1 (name varchar(20))'

ну хорошо, какой-то текст вы создали, exec его делать будем или и так сойдёт?
16 июн 16, 14:15    [19300335]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2385
Блог
Владислав Колосов
TaPaK
set @name_table = 'create table test.dbo.test1 (name varchar(20))'


ну хорошо, какой-то текст вы создали, exec его делать будем или и так сойдёт?


Тс-с-с, не давайте вредных советов, пусть процедура не работает и аффтор начнет-таки думать, что так поступать не следует.
Пущай помучается.
16 июн 16, 14:17    [19300344]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
ilya_hin,

тут надо не извиняться, а краснеть... читаем про execute
16 июн 16, 14:17    [19300348]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
ТС,
вам очень рано писать динамический SQL. вы сначала с обычным разберитесь.
16 июн 16, 14:19    [19300360]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Павел Воронцов
Владислав Колосов
пропущено...


Тс-с-с, не давайте вредных советов, пусть процедура не работает и аффтор начнет-таки думать, что так поступать не следует.
Пущай помучается.


с такими советами вы его вообще погубите
автор
commit;?
16 июн 16, 14:21    [19300369]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы через хранимую процедуру  [new]
ilya_hin
Member

Откуда:
Сообщений: 33
Все получилось, спасибо всем, за ваши бесполезные советы !
Артисты...
16 июн 16, 14:44    [19300538]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить