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

Откуда:
Сообщений: 11
На вход хранимке приходит Object_ID таблицы и мне надо создать копию ее структуры, но чтобы все поля позволяли хранить null:

Делаю собственно копию:
set @SQL = 'select top 0 * into New_' + @TableName + ' from ' + @TableName
exec(@SQL)

Как проще сделать в копии поля которые not null на null ? Конструировать перебирая в курсоре дин. SQL ? Но команда alter table ... alter column ... null требует указания типа поля, его размерности ... Проще никак нельзя ?
28 июл 14, 12:51    [16365687]     Ответить | Цитировать Сообщить модератору
 Re: Как создать копию структуры таблицы с AllowsNull полями  [new]
daw
Member

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

так можно:
create table t1 (c1 int not null, c2 varchar(20) not null);
select top (0) t1.* into t2 from (select 1 c) t left join t1 on 1 = 0;
go
select object_name(c.object_id), c.name, c.is_nullable
from sys.[columns] c where c.[object_id] in (object_id('t1'), object_id('t2'))
go
drop table t1;
go
drop table t2;
28 июл 14, 13:19    [16365851]     Ответить | Цитировать Сообщить модератору
 Re: Как создать копию структуры таблицы с AllowsNull полями  [new]
Einsof
Member

Откуда:
Сообщений: 11
daw, Спасибо. Это просто магия :)
28 июл 14, 13:39    [16365988]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить