Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Нужна помощь срочно!!!!  [new]
DedKarnilo
Guest
Люди подкиньте скриптик, я получаю дату коммандой GETDATE как мне отконвертитьь ее типа чтоб она довала мне ddmmyyyy?????
5 май 03, 13:28    [190150]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Guest
Declare @NewName datetime
set @NewName = что нужно сюда вставить чтобы имя таблицы было типа (ddmmyyyy) или (ddmmyy)

exec ('CREATE TABLE [dbo].['+@NewName +'] (
......
[id] [int] IDENTITY
) ON [PRIMARY]')

exec ('Insert '+@NewName+' select * from table')
5 май 03, 13:34    [190161]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SDzen
Member

Откуда:
Сообщений: 21
declare @NewName char(10)
select @NewName = convert(char,getdate(),112)

получишь имя вида yyyymmdd
5 май 03, 13:39    [190172]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SiDen
Member

Откуда:
Сообщений: 518
select replace(convert(nvarchar(20),getdate(),105),'-','')
5 май 03, 13:47    [190195]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Guest
Странно но при исполнении запроса выдается ошибка "line 1: incorrect syntax near '5'" в чем может быть ошибка????
5 май 03, 13:47    [190197]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SDzen
Member

Откуда:
Сообщений: 21
какой запрос ? напиши текст
5 май 03, 13:56    [190223]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SiDen
Member

Откуда:
Сообщений: 518
Кстати, почему у Вас название таблицы типа DateTime?
5 май 03, 13:57    [190224]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Guest
Короче вот весь запрос:
Declare @NewName datetime
set @NewName = *

exec ('CREATE TABLE [dbo].['+@NewName +'] (
[timestamp] [datetime] NULL DEFAULT CURRENT_TIMESTAMP,
[filterid] [smallint] NULL ,
[proto] [smallint] NULL ,
[src_ip] [char] (16),
[src_port] [int] NULL ,
[dst_ip] [char] (16) ,
[dst_port] [int] NULL ,
[sent] [int] NULL ,
[recv] [int] NULL ,
[filtername] [char] (30) ,
[tos] [int] NULL ,
[id] [int] IDENTITY
) ON [PRIMARY]')

exec ('Insert '+@NewName+' select * from trafficday')

смысл видешь в чем что я хочю создать таблицу с текущей датой
5 май 03, 13:59    [190226]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SDzen
Member

Откуда:
Сообщений: 21
Так работает:

Declare @NewName char(10)
set @NewName = convert(char,getdate(),112)

exec ('CREATE TABLE [dbo].['+@NewName +'] (
[timestamp] [datetime] NULL DEFAULT CURRENT_TIMESTAMP,
[filterid] [smallint] NULL ,
[proto] [smallint] NULL ,
[src_ip] [char] (16),
[src_port] [int] NULL ,
[dst_ip] [char] (16) ,
[dst_port] [int] NULL ,
[sent] [int] NULL ,
[recv] [int] NULL ,
[filtername] [char] (30) ,
[tos] [int] NULL ,
[id] [int] IDENTITY
) ON [PRIMARY]')
5 май 03, 14:03    [190234]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Member

Откуда:
Сообщений: 18
все равно выдает:
'line 1: incorrect syntax near '20030505'"
5 май 03, 14:07    [190242]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Member

Откуда:
Сообщений: 18
Это из-за вот этой строчки "exec ('Insert '+@NewName+' select * from trafficday')" почему??? в чем тробла
5 май 03, 14:08    [190246]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SDzen
Member

Откуда:
Сообщений: 21
не совпадают структуры таблиц 20030505 и trafficday ?
5 май 03, 14:10    [190253]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Потому что названия таблицам нужно давать учитывая рекомендации справочника.

Либо заключать их в []
"exec ('Insert dbo.['+@NewName+'] select * from trafficday')"
5 май 03, 14:11    [190257]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Member

Откуда:
Сообщений: 18
Структуры полностью идентичны, я ее создаю также!
5 май 03, 14:13    [190267]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Member

Откуда:
Сообщений: 18
Нет чето тут не то!!! я попробывал как ты сказал всеравно мотерится:(
5 май 03, 14:16    [190277]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
_Michael_
Guest
Это из-за вот этой строчки "exec ('Insert '+@NewName+' select * from trafficday')" почему??? в чем тробла


а так работает ?

exec ('Insert [b]into[/b] '+@NewName+' select * from trafficday')
5 май 03, 14:20    [190286]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Member

Откуда:
Сообщений: 18
Нет не работает:(
5 май 03, 14:21    [190290]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
_Michael_
Guest
Это из-за вот этой строчки "exec ('Insert '+@NewName+' select * from trafficday')" почему??? в чем тробла


а так работает ?

exec ('Insert INTO '+@NewName+' select * from trafficday')
5 май 03, 14:22    [190291]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Member

Откуда:
Сообщений: 18
Нет таже ошибка 'line 1: incorrect syntax near '20030505'"
5 май 03, 14:24    [190298]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SDzen
Member

Откуда:
Сообщений: 21
попробуй в строке insert явно перечислить все столбцы ЗА ИСКЛЮЧЕНИЕМ СТОЛБЦА ИМЕЮЩЕГО тип TIMESTAMP
5 май 03, 14:25    [190300]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
trayal
Member

Откуда: Пенза
Сообщений: 471
То есть таблица 20030505 создалась, а вставить не можешь?

А попробуй для теста явно указать имя таблицы.

Ошибка останется?
5 май 03, 14:27    [190309]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Я не знаю что у вас там не работает но сообщение об ошибке явно говорит об синтаксической ошибке при компиляции - syntax near '20030505'"- а '20030505' указывает на то, что серверу не нравиться имя таблицы

Declare @NewName char(10) 

set @NewName = convert(char,getdate(),112)

exec ('CREATE TABLE [dbo].['+@NewName +'] (f1 int ) ON [PRIMARY]')
exec('select * from [dbo].['+@NewName +']')
exec('insert [dbo].['+@NewName +'] select id from sysobjects')
exec('select * from [dbo].['+@NewName +']')
exec('drop table [dbo].['+@NewName +']')
5 май 03, 14:32    [190317]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SiDen
Member

Откуда:
Сообщений: 518

Declare
@NewName varchar(200)
set @NewName = 'select * into '+replace(convert(char,getdate(),105),'-','')+' from trafficday'
exec(@NewName)

так проходит?
5 май 03, 14:33    [190320]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
DedKarnilo
Member

Откуда:
Сообщений: 18
Нет не проходит!!! короче ЛЮДИ может кто сможет написать запрос чтоб создовалась таблича с текущей датой и туда копировалась инфа из уже созданной таблице??!!!
5 май 03, 14:37    [190325]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь срочно!!!!  [new]
SiDen
Member

Откуда:
Сообщений: 518
Сорри
declare
@a nvarchar(200)
set @a='select * into dbo.['+replace(convert(nvarchar(20),getdate(),105),'-','')+'] from dbo.trafficday'
exec(@a)

Вообщем название таблицы надо в []
5 май 03, 14:38    [190327]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить