programing

SQL Server Management Studio [Schema and data]를 사용하여 테이블을 다시 만드는 스크립트를 생성하는 방법은 무엇입니까?

closeapi 2023. 8. 9. 20:46
반응형

SQL Server Management Studio [Schema and data]를 사용하여 테이블을 다시 만드는 스크립트를 생성하는 방법은 무엇입니까?

로컬 SQL 서버 데이터베이스에 테이블이 있습니다.이 테이블을 호스트된 데이터베이스에 다시 작성합니다.

호스트 데이터베이스에 대해 실행할 때 이 테이블이 모든 데이터 등으로 다시 생성되는 스크립트가 필요합니다.

SQL Server Management Studio를 사용하여 이 스크립트를 만드는 방법은 무엇입니까?감사해요.

1 - SQL server Management Studio를 엽니다.

2 - 원하는 테이블이 포함된 DB를 마우스 오른쪽 단추로 클릭합니다.

3 - "Tasks => Generate Scripts.."를 선택합니다..".

4- 마법사를 따라 스크립트를 생성할 개체(테이블, 보기, 저장 프로시저 등)를 선택합니다.).

5 - 다음 단계에서 "고급"을 클릭하고 "스크립트할 데이터 유형" 레이블이 지정된 노드에 대해 "스키마데이터"를 선택합니다.

enter image description here

6 - 대본을 저장하고 웃으세요 :)

select  'create table [' + so.name + '] (' + o.list + ')' + CASE WHEN tc.Constraint_Name IS NULL THEN '' ELSE 'ALTER TABLE ' + so.Name + ' ADD CONSTRAINT ' + tc.Constraint_Name  + ' PRIMARY KEY ' + ' (' + LEFT(j.List, Len(j.List)-1) + ')' END
from    sysobjects so
cross apply
    (SELECT 
        '  ['+column_name+'] ' + 
        data_type + case data_type
            when 'sql_variant' then ''
            when 'text' then ''
            when 'ntext' then ''
            when 'xml' then ''
            when 'decimal' then '(' + cast(numeric_precision as varchar) + ', ' + cast(numeric_scale as varchar) + ')'
            else coalesce('('+case when character_maximum_length = -1 then 'MAX' else cast(character_maximum_length as varchar) end +')','') end + ' ' +
        case when exists ( 
        select id from syscolumns
        where object_name(id)=so.name
        and name=column_name
        and columnproperty(id,name,'IsIdentity') = 1 
        ) then
        'IDENTITY(' + 
        cast(ident_seed(so.name) as varchar) + ',' + 
        cast(ident_incr(so.name) as varchar) + ')'
        else ''
        end + ' ' +
         (case when IS_NULLABLE = 'No' then 'NOT ' else '' end ) + 'NULL ' + 
          case when information_schema.columns.COLUMN_DEFAULT IS NOT NULL THEN 'DEFAULT '+ information_schema.columns.COLUMN_DEFAULT ELSE '' END + ', ' 

     from information_schema.columns where table_name = so.name
     order by ordinal_position
    FOR XML PATH('')) o (list)
left join
    information_schema.table_constraints tc
on  tc.Table_name       = so.Name
AND tc.Constraint_Type  = 'PRIMARY KEY'
cross apply
    (select '[' + Column_Name + '], '
     FROM   information_schema.key_column_usage kcu
     WHERE  kcu.Constraint_Name = tc.Constraint_Name
     ORDER BY
        ORDINAL_POSITION
     FOR XML PATH('')) j (list)
where   xtype = 'U'
AND name    NOT IN ('dtproperties')

스크립트 데이터베이스 생성 태스크를 사용하여 이 작업을 수행할 수 있습니다.데이터베이스 > 작업 > 스크립트 생성...을 마우스 오른쪽 버튼으로 클릭합니다.원하는 표와 "특정 데이터베이스 오브젝트 선택"을 선택합니다.

스크립팅 옵션 설정 페이지에서 고급을 클릭합니다."스크립트할 데이터 유형" 옵션이 있으며 "스키마 및 데이터"를 선택합니다.저장할 위치를 선택합니다.다음. 다음.끝내라.

하지만 표에 많은 양의 데이터가 포함되어 있다면 bcp out 또는 다른 방법으로 데이터를 내보내는 것이 좋습니다.새 서버가 동일한 네트워크에 있는 경우 연결된 서버로 선택할 수도 있습니다.

스크립트 메서드는 개별 삽입 문을 생성합니다.

언급URL : https://stackoverflow.com/questions/13521085/how-to-generate-scripts-to-recreate-table-using-sql-server-management-studio-sc

반응형