Sql server 如何在c语言中实用地生成SQL脚本#
我想使用c代码生成txt/sql文件,该代码将为数据库中所有可用的表数据提供“插入脚本”。 例如,我的数据库名为“Test”。它有两张桌子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
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'