Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server “如何工作”;将表脚本设置为"&引用;“创建表格”;sql management studio中的脚本_Sql Server_Tsql_Sql Server 2008 - Fatal编程技术网

Sql server “如何工作”;将表脚本设置为"&引用;“创建表格”;sql management studio中的脚本

Sql server “如何工作”;将表脚本设置为"&引用;“创建表格”;sql management studio中的脚本,sql-server,tsql,sql-server-2008,Sql Server,Tsql,Sql Server 2008,我想得到所有表的“创建”脚本 有没有脚本,比如sp_helptext “脚本表为”->“创建表”时,如何获取调用的脚本 是否选中?您可以右键单击数据库,然后转到任务->生成脚本 这将引导您完成所有所需脚本的编写。您可以右键单击数据库并转到任务->生成脚本 这将引导您完成所有需要的脚本的编写。您可以使用Stefan和gbn的建议。另外,如果您想要为ur DB的精确副本创建脚本,请查看。它内置于VS2008+中您可以使用Stefan和gbn的建议。另外,如果您想要为ur DB的精确副本创建脚本,请查

我想得到所有表的“创建”脚本

有没有脚本,比如sp_helptext

“脚本表为”->“创建表”时,如何获取调用的脚本
是否选中?

您可以右键单击数据库,然后转到任务->生成脚本


这将引导您完成所有所需脚本的编写。

您可以右键单击数据库并转到任务->生成脚本


这将引导您完成所有需要的脚本的编写。

您可以使用Stefan和gbn的建议。另外,如果您想要为ur DB的精确副本创建脚本,请查看。它内置于VS2008+中

您可以使用Stefan和gbn的建议。另外,如果您想要为ur DB的精确副本创建脚本,请查看。它内置于VS2008+

中,您可以在SQL Server中使用“生成脚本”选项

Tasks->Generate Scripts 

在那里,您可以根据需要使用脚本。

您可以使用SQL Server中的“生成脚本”选项

Tasks->Generate Scripts 

在那里,您可以根据需要使用脚本。

已经有人给出了这个问题的正确答案

The best method is Rightclick the database then Tasks->Generate Scripts
但有人指出,由于某些原因,您无法使用该方法

如果您正在寻找一个使用query的方法,那么可以采用下面的方法,它将返回表的模式

Go

Create Function ShowMyTableData
(
    @vsTableName varchar(50)
)

Returns
    VarChar(Max)
With ENCRYPTION

Begin

Declare @ScriptCommand varchar(Max)

Select @ScriptCommand =
    ' 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 As SO
    Cross Apply

    (
        Select 
            '  [' + column_name + '] ' + 
             data_type + 
             (
                Case data_type
                    When 'sql_variant' 
                        Then ''
                    When 'text' 
                        Then ''
                    When 'decimal' 
                        Then '(' + Cast( numeric_precision_radix 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)

        Inner Join information_schema.table_constraints As TC On (
                                                                    ( TC.Table_name = SO.Name )
                                                                    AND 
                                                                    ( TC.Constraint_Type  = 'PRIMARY KEY' )
                                                                    And 
                                                                    ( TC.TABLE_NAME = @vsTableName )
                                                                 )
        Cross Apply
            (
                Select '[' + Column_Name + '], '
                From  information_schema.key_column_usage As kcu
                Where 
                    ( kcu.Constraint_Name = TC.Constraint_Name )
                Order By ORDINAL_POSITION
                FOR XML PATH('')
            ) As j (list)
Where
    ( xtype = 'U' )
    AND 
    ( Name NOT IN ('dtproperties') )

Return @ScriptCommand

End
你可以像这样调用你的函数

Select [dbo].ShowMyTableData ('tablename')
扩展名

如果您也需要数据,那么可以使用以下查询

select 'insert into tablename values('+yourcolumnanme+','+columnanme2.....+')' from tablename

已经有人对这个问题给出了正确的答案

The best method is Rightclick the database then Tasks->Generate Scripts
但有人指出,由于某些原因,您无法使用该方法

如果您正在寻找一个使用query的方法,那么可以采用下面的方法,它将返回表的模式

Go

Create Function ShowMyTableData
(
    @vsTableName varchar(50)
)

Returns
    VarChar(Max)
With ENCRYPTION

Begin

Declare @ScriptCommand varchar(Max)

Select @ScriptCommand =
    ' 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 As SO
    Cross Apply

    (
        Select 
            '  [' + column_name + '] ' + 
             data_type + 
             (
                Case data_type
                    When 'sql_variant' 
                        Then ''
                    When 'text' 
                        Then ''
                    When 'decimal' 
                        Then '(' + Cast( numeric_precision_radix 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)

        Inner Join information_schema.table_constraints As TC On (
                                                                    ( TC.Table_name = SO.Name )
                                                                    AND 
                                                                    ( TC.Constraint_Type  = 'PRIMARY KEY' )
                                                                    And 
                                                                    ( TC.TABLE_NAME = @vsTableName )
                                                                 )
        Cross Apply
            (
                Select '[' + Column_Name + '], '
                From  information_schema.key_column_usage As kcu
                Where 
                    ( kcu.Constraint_Name = TC.Constraint_Name )
                Order By ORDINAL_POSITION
                FOR XML PATH('')
            ) As j (list)
Where
    ( xtype = 'U' )
    AND 
    ( Name NOT IN ('dtproperties') )

Return @ScriptCommand

End
你可以像这样调用你的函数

Select [dbo].ShowMyTableData ('tablename')
扩展名

如果您也需要数据,那么可以使用以下查询

select 'insert into tablename values('+yourcolumnanme+','+columnanme2.....+')' from tablename

您只对模式感兴趣。不是数据。是吗?是的,首先我想得到模式。获取数据是另一个步骤。您只对模式感兴趣。不是数据。是吗?是的,首先我想得到模式。获取数据是另一个步骤。是否有新版本?不支持sql 2008有新版本吗?它不支持sql 2008。你是对的。生成脚本在这项工作中做得很好。但由于某些身份验证问题,我无法使用此解决方案。身份验证问题是您无法访问表定义的问题吗?如果是这样,则没有工具允许您编写表的脚本。第一步似乎是获得必要的访问权。你是对的。生成脚本在这项工作中做得很好。但由于某些身份验证问题,我无法使用此解决方案。身份验证问题是您无法访问表定义的问题吗?如果是这样,则没有工具允许您编写表的脚本。第一步似乎是获得必要的访问权。