Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 скрипт таблицы руками  [new]
tusha
Member

Откуда:
Сообщений: 122
тут попробовал написать скрипт на создание таблицы mssql 2005 руками (есть такой же примерно для 2000 + скрипт на создание индексов к таблице) - стандартный скриптинг не работал - база была битая. вот что получилось: мож у когото естть замечяния/пожелания/дополнения, мож у когото есть более оптимальный вариант - милости просим. прошу сильно не пинать =)
declare @tname char(128), @fields varchar(256), @macro varchar(max)
set @tname='xxx'
set @fields=''
set @macro=''

declare tcolumns cursor local scroll for
select 
(sys.columns.name)+
(case 
	when sys.columns.is_computed=1 then ' as '+rtrim(sys.computed_columns.definition)
	else (' ['+rtrim(ltrim(sys.types.name))+'] ')
end)+
(case 
	when sys.columns.is_computed=1 then ''
	when rtrim(ltrim(sys.types.name)) in ('char','varchar','varbinary') then case when sys.columns.max_length=-1 then '(max)' else '('+rtrim(convert(char, sys.columns.max_length))+')' end
	when rtrim(ltrim(sys.types.name)) in ('nchar','nvarchar') then '('+rtrim(convert(char, sys.columns.max_length/2))+')'
	when rtrim(ltrim(sys.types.name)) in ('binary') then '('+rtrim(convert(char, sys.columns.max_length))+')'
	when rtrim(ltrim(sys.types.name)) in ('decimal','numeric') then '('+rtrim(convert(char, sys.columns.precision))+','+rtrim(convert(char, sys.columns.scale))+')'
	when rtrim(ltrim(sys.types.name)) in ('tinyint','smallint','int','bigint','bit','float','datetme','smalldatetime','timestamp','uniqueidentifier','image','money','smallmoney','real','text','ntext','sql_variant','xml') then ''	
	else ''
end)+
(case when sys.columns.is_rowguidcol=1 then 'ROWGUIDCOL DEFAULT '+rtrim(sys.default_constraints.definition) else '' end) +
(case when sys.columns.collation_name is null then '' else ' COLLATE '+rtrim(sys.columns.collation_name) end)+
(case when sys.columns.is_nullable = 1 then ' null' else ' not null' end) +
(case when sys.columns.default_object_id>0 and sys.columns.is_rowguidcol=0 then ' CONSTRAINT ['+rtrim(sys.objects.name)+'] DEFAULT '+rtrim(sys.default_constraints.definition) else '' end)+
'' field 
from sys.columns 
left join sys.types on sys.columns.system_type_id=
	case 
		 when sys.types.user_type_id!=sys.types.system_type_id
		 then sys.types.user_type_id
		 else sys.types.system_type_id
	end
left join sys.objects on sys.objects.object_id=sys.columns.default_object_id
left join sys.default_constraints on sys.default_constraints.object_id=sys.objects.object_id
left join sys.computed_columns on sys.computed_columns.object_id = sys.columns.object_id and sys.columns.column_id=sys.computed_columns.column_id
where sys.columns.object_id = object_id(@tname)

open tcolumns
fetch first from tcolumns into @fields
while @@fetch_status=0
begin
	set @macro=@macro+@fields+', '
	fetch next from tcolumns into @fields
end
set @macro='create table '+rtrim(@tname)+' ('+substring(@macro,1,len(@macro)-1)+')'+
	' on primary '+
	(case 
		when (select count(*) from sys.columns, sys.types where sys.columns.object_id = object_id(@tname) and sys.columns.system_type_id=
			  case when sys.types.user_type_id!=sys.types.system_type_id then sys.types.user_type_id else sys.types.system_type_id end and sys.types.name in ('text','ntext','image'))>0
			 then 'TEXTIMAGE_ON '+rtrim((select max(sys.data_spaces.name) from sys.data_spaces, sys.tables where sys.tables.object_id=object_id(@tname) and sys.tables.lob_data_space_id=sys.data_spaces.data_space_id))
		else ''
		
	end)
	
select @macro
close tcolumns
deallocate tcolumns

3 июл 09, 08:39    [7371463]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Это плохая практика - шариться по системным таблицам.
А как в очередной версии сменят имена и схемы?
Есть специальные стандартные представления INFORMATION_SCHEMA. Вот они будут всегда пока микрософт поддерживает ANSI стандарт...

Сообщение было отредактировано: 3 июл 09, 09:16
3 июл 09, 09:16    [7371597]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
По сути ещё не смотрел, но бросился в глаза SCROLL курсор.
Замените на FAST_FORWFRD, а FETCH FIRST - на FETCH NEXT - заметно быстрее будет.
Всё равно же курсор, по сути, однонаправленный...

Что-то не заметил, где IDENTITY, CHECK CONSTRAINT, UNIQUE CONSTRAINT, PRIMARY KEY, FOREIGN KEY, TRIGGER, INDEX?
А у FLOAT, например, может задаваться количество бит для мантиссы (от 1 до 53, по умолчанию - 53)
Или просто я ещё не разобрался?
3 июл 09, 09:16    [7371598]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tusha
Member

Откуда:
Сообщений: 122
гм... , не вопрос, будем доделывать =)
3 июл 09, 09:23    [7371626]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
i2akai1
Member

Откуда: Петербург
Сообщений: 217
tusha,

left join sys.types on sys.columns.system_type_id=
	case 
		 when sys.types.user_type_id!=sys.types.system_type_id
		 then sys.types.user_type_id
		 else sys.types.system_type_id
	end

разве не проще просто:

left join sys.types on sys.columns.system_type_id=sys.types.user_type_id
3 июл 09, 09:24    [7371636]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
tpg
Это плохая практика - шариться по системным таблицам.
А как в очередной версии сменят имена и схемы?
Есть специальные стандартные представления INFORMATION_SCHEMA. Вот они будут всегда пока микрософт поддерживает ANSI стандарт...
Присоединяюсь!
Вот только не всё оттуда достать можно (по причине отсутсвия )
Например, индексы. Хочешь - не хочешь, а в системные таблицы и представления лезть придётся...
3 июл 09, 09:26    [7371638]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Это плохая практика - шариться по системным таблицам.
> А как в очередной версии сменят имена и схемы?

начиная с 2005-ого это уже все-таки представления.
и теперь это рекомендуемый способ для получения метаданных:
BOL - Catalog Views

We recommend that you use catalog views because they are the most general interface to the catalog metadata and provide
the most efficient way to obtain, transform, and present customized forms of this information.

а менять их обещают только добавляя столбцы в конце.

> Есть специальные стандартные представления INFORMATION_SCHEMA. Вот они
> будут всегда пока микрософт поддерживает ANSI стандарт...

и, соответственно, того, что в стандарте не описано (да хоть то же identity)
там нет.

Posted via ActualForum NNTP Server 1.4

3 июл 09, 09:32    [7371652]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
daw

> Это плохая практика - шариться по системным таблицам.
> А как в очередной версии сменят имена и схемы?

начиная с 2005-ого это уже все-таки представления.
и теперь это рекомендуемый способ для получения метаданных:
BOL - Catalog Views

We recommend that you use catalog views because they are the most general interface to the catalog metadata and provide
the most efficient way to obtain, transform, and present customized forms of this information.

а менять их обещают только добавляя столбцы в конце.

> Есть специальные стандартные представления INFORMATION_SCHEMA. Вот они
> будут всегда пока микрософт поддерживает ANSI стандарт...

и, соответственно, того, что в стандарте не описано (да хоть то же identity)
там нет.
Ога.
Вот только маленькая загвоздочка - в 2000 этих системных представлений каталога и в помине нет...
3 июл 09, 10:35    [7371951]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Ога.
> Вот только маленькая загвоздочка - в 2000 этих системных представлений
> каталога и в помине нет...

так речь-то не о 2000-ом.
я, собственно, как раз об этом и говорю - в отличие от системных таблиц 2000-ого,
представления каталога в 2005-ом и выше - это вполне себе кошерный способ получения
метаданных - никакой "плохой практики" в их использовании нет.

Posted via ActualForum NNTP Server 1.4

3 июл 09, 10:42    [7372007]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tusha
Member

Откуда:
Сообщений: 122
чуть позже выложу таблицы+индексы для 97 и 2000 =)
3 июл 09, 11:21    [7372278]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tusha
Member

Откуда:
Сообщений: 122
поднимаем из глубин
(индексы не доделал)
use test
declare @objname varchar(128), @newobjname varchar(128), @fields varchar(256), @macro varchar(max), @schema_name varchar(256), /*@destination_db varchar(256),*/ @indexes varchar(2000)
set @objname='xxx'
set @newobjname='xxx'
set @fields=''
set @macro=''
--set @destination_db='test'
set @indexes=''

select @schema_name=isnull(sys.schemas.name,'') from sys.objects, sys.schemas 
where object_id=object_id(@objname) and sys.schemas.schema_id=sys.objects.schema_id

declare tcolumns cursor local fast_forward for
select 
'['+(sys.columns.name)+']'+
(case 
	when sys.columns.is_computed=1 then ' as '+rtrim(sys.computed_columns.definition)
	else (' ['+rtrim(ltrim(sys.types.name))+'] ')
end)+
(case 
	when sys.columns.is_computed=1 then ''
	when rtrim(ltrim(sys.types.name)) in ('char','varchar','varbinary') then case when sys.columns.max_length=-1 then '(max)' else '('+rtrim(convert(char, sys.columns.max_length))+')' end
	when rtrim(ltrim(sys.types.name)) in ('nchar','nvarchar') then case when sys.columns.max_length=-1 then '(max)' else '('+rtrim(convert(char, sys.columns.max_length/2))+')' end 
	when rtrim(ltrim(sys.types.name)) in ('binary') then '('+rtrim(convert(char, sys.columns.max_length))+')'
	when rtrim(ltrim(sys.types.name)) in ('decimal','numeric') then '('+rtrim(convert(char, sys.columns.precision))+','+rtrim(convert(char, sys.columns.scale))+')'
	when rtrim(ltrim(sys.types.name)) in ('tinyint','smallint','int','bigint','bit','float','datetme','smalldatetime','timestamp','uniqueidentifier','image','money','smallmoney','real','text','ntext','sql_variant','xml') then ''	
	else ''
end)+
(case when sys.columns.is_identity=1 then ' identity('+rtrim(convert(char,sys.identity_columns.seed_value))+','+rtrim(convert(char,sys.identity_columns.increment_value))+') ' else '' end)+
(case when sys.columns.is_rowguidcol=1 then 'ROWGUIDCOL DEFAULT '+rtrim(sys.default_constraints.definition) else '' end) +
(case when sys.columns.collation_name is null then '' else ' COLLATE '+rtrim(sys.columns.collation_name) end)+
(case when sys.columns.is_computed=1 then '' else (case when sys.columns.is_nullable = 1 then ' null' else ' not null' end) end)+
(case when sys.columns.default_object_id>0 and sys.columns.is_rowguidcol=0 then ' CONSTRAINT ['+rtrim(sys.objects.name)+'] DEFAULT '+rtrim(sys.default_constraints.definition) else '' end)+
'' field 
from sys.columns 
left join sys.types on sys.columns.system_type_id=sys.types.user_type_id
left join sys.objects on sys.objects.object_id=sys.columns.default_object_id
left join sys.default_constraints on sys.default_constraints.object_id=sys.objects.object_id
left join sys.computed_columns on sys.computed_columns.object_id = sys.columns.object_id and sys.columns.column_id=sys.computed_columns.column_id
left join sys.identity_columns on sys.identity_columns.object_id = sys.columns.object_id
where sys.columns.object_id = object_id(@objname)

open tcolumns
fetch next from tcolumns into @fields
while @@fetch_status=0
begin
	set @macro=@macro+@fields+', '
	fetch next from tcolumns into @fields
end

declare tconstr cursor local fast_forward for 
select distinct ' CONSTRAINT '+
		'['+rtrim(sys.key_constraints.name)+']'+
		' '+case sys.key_constraints.type when 'PK' then 'PRIMARY KEY' when 'UQ' then 'UNIQUE' end+
		' '+rtrim(sys.indexes.type_desc)+
		'('+
			'['+index_col(@objname,sys.key_constraints.unique_index_id,1)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,1,'isdescending') when 0 then 'ASC' else 'DESC' end +
			case when index_col(@objname,sys.key_constraints.unique_index_id,2) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,2)++']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,2,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,3) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,3)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,3,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,4) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,4)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,4,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,5) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,5)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,5,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,6) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,6)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,6,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,7) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,7)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,7,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,8) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,8)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,8,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,9) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,9)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,9,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,10) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,10)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,10,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,11) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,11)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,11,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,12) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,12)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,12,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,13) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,13)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,13,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,14) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,14)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,14,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,15) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,15)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,15,'isdescending') when 0 then ' ASC' else ' DESC' end end+
			case when index_col(@objname,sys.key_constraints.unique_index_id,16) is null then '' else ', ['+index_col(@objname,sys.key_constraints.unique_index_id,16)+']'+case indexkey_property(object_id(@objname),sys.key_constraints.unique_index_id,16,'isdescending') when 0 then ' ASC' else ' DESC' end end+			
		')' collate database_default +
		' with ('+
			'PAD_INDEX = '+case when sys.indexes.is_padded=1 then 'ON' else 'OFF' end+', '+
			--'STATISTICS_NORECOMPUTE = '+case when sys.indexes.is_padded=1 then 'ON' else 'OFF' end+', '+
			'IGNORE_DUP_KEY = '+case when sys.indexes.ignore_dup_key=1 then 'ON' else 'OFF' end+', '+
			'ALLOW_ROW_LOCKS = '+case when sys.indexes.allow_row_locks=1 then 'ON' else 'OFF' end+', '+
			'ALLOW_PAGE_LOCKS = '+case when sys.indexes.allow_page_locks=1 then 'ON' else 'OFF' end+
			case when sys.indexes.fill_factor>0 then ', FILL_FACTOR = '+rtrim(convert(char,sys.indexes.fill_factor)) else '' end+
		')'+
		' ON ['+rtrim(sys.data_spaces.name)+']'
from sys.key_constraints  
left join sys.indexes on sys.key_constraints.unique_index_id=sys.indexes.index_id 
left join sys.index_columns on sys.index_columns.object_id=parent_object_id and sys.index_columns.index_id=sys.indexes.index_id --and sys.indexes.index_column_id=
left join sys.data_spaces on sys.data_spaces.data_space_id=sys.indexes.data_space_id
where parent_object_id=object_id(@objname) and sys.indexes.object_id=object_id(@objname) 

open tconstr
fetch next from tconstr into @indexes
while @@fetch_status=0
begin
	set @macro=@macro+@indexes+', '
	fetch next from tconstr into @indexes
end

select @macro='create table '+
	('['+rtrim(@schema_name)+'].['+rtrim(@newobjname)+']')+
	('('+
		(substring(@macro,1,len(@macro)-1))+
	')')+
	' on [primary] '+
	(case 
		when (select count(*) from sys.columns, sys.types where sys.columns.object_id = object_id(@objname) and sys.columns.system_type_id=sys.types.user_type_id and sys.types.name in ('text','ntext','image'))>0
			 then 'TEXTIMAGE_ON ['+rtrim((select max(sys.data_spaces.name) from sys.data_spaces, sys.tables where sys.tables.object_id=object_id(@objname) and sys.tables.lob_data_space_id=sys.data_spaces.data_space_id)+']')
		else ''
		
	end)

select @macro

close tconstr
deallocate tconstr
close tcolumns
deallocate tcolumns

13 июл 09, 15:43    [7409314]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Maxx
Member [скрыт]

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

с точки зрения пользы - нафига изобретать велосипед то ? просто интересно?
-------------------------------------
Jedem Das Seine
13 июл 09, 16:49    [7409835]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tusha
Member

Откуда:
Сообщений: 122
автор
с точки зрения пользы - нафига изобретать велосипед то
- не согласен. были случаи, когда база была битая, всякие там dbcc не помогали. однако данные из таблиц запросами вытянуть можно было вот и пригодился он
13 июл 09, 19:15    [7410614]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
tusha
автор
с точки зрения пользы - нафига изобретать велосипед то
- не согласен. были случаи, когда база была битая, всякие там dbcc не помогали.
Эта проблема не скриптами решается.
13 июл 09, 19:32    [7410650]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tusha
Member

Откуда:
Сообщений: 122
возможно, спорить не буду. однако когда на серваке крутятся 300 интернет-баз, и при этом юзается самый первый билд 2000 сервака без каких-либо сервис паков, когда ентерпрайз менеджер не работает,когда половина баз лежат в суспекте... и когда НАМ надо это все разгребать.... - все методы хороши, вплоть до отрывания рук одминам.

и еще одна задача, где это можно применить - ежегодная архивация данных)

хотя по больщому счеты Вы правы - это больше упражнение для мозгов) ИМХО
13 июл 09, 20:44    [7410782]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
tusha
однако когда на серваке крутятся 300 интернет-баз, и при этом юзается самый первый билд 2000 сервака без каких-либо сервис паков...
Ну что же Вы тогда хотите? Я не админ, с 2000-м не работал ни в раз, но и то знаю, что более-менее стабильным является MSSQL2000 SP4 и знаю настойчивые какие призывы звучали от MS обновляться. Неужели так трудно накатить сервис-паки?!
tusha
и еще одна задача, где это можно применить - ежегодная архивация данных)
Это уже выше моего понимания. Что-то мне подсказывало, что не все ладно в Вашем "Датском государстве", но чем дальше - тем интереснее. :)
tusha
хотя по больщому счеты Вы правы - это больше упражнение для мозгов) ИМХО
Это дело хорошее, но может подумать об админских методах? Балование своего самолюбия красивыми (бесполезными) скриптами - это конечно, хорошо, но и и пользе дела забывать не стОит, ИМХО.
13 июл 09, 22:10    [7410910]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Кошмар какой... больше и сказать то нечего....
А по поводу ежегодной архивации данных не совсем понятно.... Оно Вам так редко надо или Вы что либо другое имели ввиду ? :)
13 июл 09, 22:59    [7411053]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Ozerov
Кошмар какой... больше и сказать то нечего....
А по поводу ежегодной архивации данных не совсем понятно.... Оно Вам так редко надо или Вы что либо другое имели ввиду ? :)
Я все понял! Это неправильные пчелы и они делают неправильный мед! (С) Винни Пух

Не иначе какой-нибудь замшелый региональный провайдер так чудит и издевается над своими пользователями: неисправное железо, необновленный сервер БД и скучающий админ, с тягой к великому. Мдя... полный комплект. Хай господь помилует от такого хостера, такое в страшном сне не приснится (плюю три раза через плечо)
13 июл 09, 23:08    [7411083]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Senya_L
Ozerov
Кошмар какой... больше и сказать то нечего....
А по поводу ежегодной архивации данных не совсем понятно.... Оно Вам так редко надо или Вы что либо другое имели ввиду ? :)
Я все понял! Это неправильные пчелы и они делают неправильный мед! (С) Винни Пух

Не иначе какой-нибудь замшелый региональный провайдер так чудит и издевается над своими пользователями: неисправное железо, необновленный сервер БД и скучающий админ, с тягой к великому. Мдя... полный комплект. Хай господь помилует от такого хостера, такое в страшном сне не приснится (плюю три раза через плечо)

Насчет пчел +1! Но буду надеяться, что Мы чегой то не допоняли... Иначе жить страшно :)
13 июл 09, 23:11    [7411089]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Ozerov
Senya_L
Ozerov
Кошмар какой... больше и сказать то нечего....
А по поводу ежегодной архивации данных не совсем понятно.... Оно Вам так редко надо или Вы что либо другое имели ввиду ? :)
Я все понял! Это неправильные пчелы и они делают неправильный мед! (С) Винни Пух

Не иначе какой-нибудь замшелый региональный провайдер так чудит и издевается над своими пользователями: неисправное железо, необновленный сервер БД и скучающий админ, с тягой к великому. Мдя... полный комплект. Хай господь помилует от такого хостера, такое в страшном сне не приснится (плюю три раза через плечо)

Насчет пчел +1! Но буду надеяться, что Мы чегой то не допоняли... Иначе жить страшно :)
Возможно, что и недопыняли. Вот только полный скрипт БД можно получить без лишних телодвижений и штатными средствами. Сужу по 20005-му.
+ OFF
Я сам из провинции и там же и сейчас :), но у нас были в соседях по офису провайдеры местные. Вполне вменяемые ребята там админы. В курилке все работу обсуждали, в том числе и хостинг. У них Gentoo крутился. Может и не показатель, но их работу хвалили и со стороны. Вот так оно бывает...
13 июл 09, 23:28    [7411135]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Senya_L,
Да я сначала и не писал тут, не понимая зачем ентос все, но вот когда последние посты увидил, уж заинтересовалси... А насчет оффа, оно везде по разному бывает...
13 июл 09, 23:31    [7411141]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
i2akai1
Member

Откуда: Петербург
Сообщений: 217
Лучше когда есть, чем когда нет, лишним не будет :)
13 июл 09, 23:49    [7411171]     Ответить | Цитировать Сообщить модератору
 Re: скрипт таблицы руками  [new]
tusha
Member

Откуда:
Сообщений: 122
автор
Оно Вам так редко надо или Вы что либо другое имели ввиду ?
например выгрузка данных некоррегируемых лет
короче, тут просто флуд начался уже
14 июл 09, 08:42    [7411518]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить