Sql server 如何在c语言中实用地生成SQL脚本#

Sql server 如何在c语言中实用地生成SQL脚本#,sql-server,tsql,c#-4.0,Sql Server,Tsql,C# 4.0,我想使用c代码生成txt/sql文件,该代码将为数据库中所有可用的表数据提供“插入脚本”。 例如,我的数据库名为“Test”。它有两张桌子 雇员 系 部门数据: ID名称 1账户 员工数据 ID名称部门 1拉维1 6里帕尔1 现在我的c#代码应该生成包含以下内容的txt/sql文件。 USE [Test] GO SET IDENTITY_INSERT [dbo].[Department] ON GO INSERT [dbo].[Department] ([ID], [Name]) VALUE

我想使用c代码生成txt/sql文件,该代码将为数据库中所有可用的表数据提供“插入脚本”。 例如,我的数据库名为“Test”。它有两张桌子

  • 雇员

  • 部门数据:

    ID名称
    1账户

    员工数据

    ID名称部门
    1拉维1
    6里帕尔1

    现在我的c#代码应该生成包含以下内容的txt/sql文件。

    USE [Test]
    GO
    SET IDENTITY_INSERT [dbo].[Department] ON 
    
    GO
    INSERT [dbo].[Department] ([ID], [Name]) VALUES (1, N'Account')
    GO
    SET IDENTITY_INSERT [dbo].[Department] OFF
    GO
    SET IDENTITY_INSERT [dbo].[Employee] ON 
    
    GO
    INSERT [dbo].[Employee] ([ID], [Name],  [DeptID]) VALUES (1, N'Ravi', 1)
    GO
    INSERT [dbo].[Employee] ([ID], [Name],  [DeptID]) VALUES (6, N'Ripal', 1)
    GO
    SET IDENTITY_INSERT [dbo].[Employee] OFF
    GO
    

    大多数数据库都具有导出功能,您可以使用这些功能生成插入脚本以将数据传输到另一个数据库中,但每个数据库的导出功能不同

    大多数数据库都具有导出功能,您可以使用该功能生成插入脚本以将数据传输到另一个数据库,但不同数据库的导出功能不同

    您可以为此创建过程并从C调用该过程#


    您可以为此创建过程并从C调用该过程#


    来自什么??请清楚地说明您的需求,并说明所有输入和要实现的代码。SSMS允许您这样做:右键单击数据库,然后单击任务->生成脚本。它将打开一个弹出窗口。@coder of coder:我已更新了我的要求。@Alex:我想按语法执行此操作。我创建了一个过程,如回答中所述,该过程将生成插入脚本,如果您想根据您的情况进行修改,则可以执行。从什么地方查到的??请清楚地说明您的需求,并说明所有输入和要实现的代码。SSMS允许您这样做:右键单击数据库,然后单击任务->生成脚本。它将打开一个弹出窗口。@coder of coder:我已更新了我的要求。@Alex:我想按语法执行此操作。我创建了一个过程,如回答中所述,该过程将生成插入脚本,如果您想根据您的情况进行修改,则可以执行。检查一下
    CREATE PROCEDURE sp_generate_insertscripts
    (
        @TABLE_NAME VARCHAR(MAX),
        @FILTER_CONDITION VARCHAR(MAX)=''
    )
    AS
    BEGIN
    
    SET NOCOUNT ON
    
    DECLARE @CSV_COLUMN VARCHAR(MAX),
            @QUOTED_DATA VARCHAR(MAX),
            @TEXT VARCHAR(MAX)
    
    SELECT @CSV_COLUMN=STUFF
    (
        (
         SELECT ',['+ NAME +']' FROM sys.all_columns 
         WHERE OBJECT_ID=OBJECT_ID(@TABLE_NAME) AND 
         is_identity!=1 FOR XML PATH('')
        ),1,1,''
    )
    
    SELECT @QUOTED_DATA=STUFF
    (
        (
         SELECT ' ISNULL(QUOTENAME('+NAME+','+QUOTENAME('''','''''')+'),'+'''NULL'''+')+'','''+'+' FROM sys.all_columns 
         WHERE OBJECT_ID=OBJECT_ID(@TABLE_NAME) AND 
         is_identity!=1 FOR XML PATH('')
        ),1,1,''
    )
    
    SELECT @TEXT='SELECT ''INSERT INTO '+@TABLE_NAME+'('+@CSV_COLUMN+')VALUES('''+'+'+SUBSTRING(@QUOTED_DATA,1,LEN(@QUOTED_DATA)-5)+'+'+''')'''+' Insert_Scripts FROM '+@TABLE_NAME + @FILTER_CONDITION
    
    --SELECT @CSV_COLUMN AS CSV_COLUMN,@QUOTED_DATA AS QUOTED_DATA,@TEXT TEXT
    
    EXECUTE (@TEXT)
    
    SET NOCOUNT OFF
    
    END
    
    --EXEC sp_generate_insertscripts 'tableName'