SQL模拟资料汇出及印出新增资料插入~

这其实是遇到无法用大量汇入~
却又想要将指定资料表汇入到另一个资料库的SQL方式@@
因为在独立环境只能先存在记事本~再贴过去新增@@~
写了这东东...XD

资料表

CREATE TABLE [Test](
	[Test_ID] [int] NOT NULL,
	[Test_Name] [nvarchar](50) NULL,
	[Test_Sort] [int] NULL default 0,
	[Test_Create_Date] [datetime] NULL,
 CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED 
(
	[Test_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

模拟资料汇入

declare @i int=0,@Count int=0
declare @TargetID int,@TargetName nvarchar(50)=''
declare @SQLCommand nvarchar(max)
declare @TableName nvarchar(50) = N'Test',@MainKey nvarchar(50) = 'Test_ID',@StrName nvarchar(max),@SetStr nvarchar(max)

-- 纪录变数资料表有几笔
declare @CountTable nvarchar(max) = 'select @CountOut=Count(0) from ' + @TableName
declare @CountSetOut nvarchar(max) = '@CountOut int OUTPUT'
exec sp_executesql @CountTable,@CountSetOut,@CountOut=@Count OUTPUT

--取得变数资料表的所有栏位名称
select @StrName=Stuff((
	select ',' + column_name 
	from INFORMATION_SCHEMA.COLUMNS 
	where table_name=@TableName
	for xml path('')
),1,1,'')
,@SetStr=Stuff((
	select '+ ''*,'' + Convert(nvarchar(max),isNull(' + column_name + ','''')) '
	from INFORMATION_SCHEMA.COLUMNS 
	where table_name=@TableName
	for xml path('')
),1,1,'')

-- 动态组出SQL
SET @SQLCommand = 'select @Str=' + @SetStr + ' from (select Row_Number()Over(order by ' + @MainKey + ') CountSort,' + @StrName + ' from ' + @TableName + ' ) k where CountSort = @Sort '
SET @SQLCommand += ' print ''insert into ' + @TableName + '(' + @StrName + ') select N'''''' + replace(substring(@Str,3,len(@Str)), ''*,'' , '''''',N'''''' ) + '''''''' '

--列印所有笔数的变数资料表的资料
while(@i<@Count)
begin
	set @i = @i + 1

	-- 执行动态组出的SQL
	EXECUTE sp_executesql @SQLCommand, N'@Sort int,@Str nvarchar(max)=''''', @i
end


最後印出来是这样
https://ithelp.ithome.com.tw/upload/images/20211126/20061369NLsJQtJQUf.png


<<:  为了转生而点技能-JavaScript,day6(初探物件构造及物件取值

>>:  ASUSTOR NAS网路储存服务器装置推荐 开箱安装

#26 JS: HTML DOM Events - Part 4(Start Over Version)

After understanding the basic HTML DOM Event conce...

Wentz QOTD CISSP练习题原创声明

所有经过(ISC)²认证的资讯安全专业人员都承认,取得认证是一种特权,它必须花费心力取得并且持续维...

Day10 X 实作一个简单的 Virtualized List 吧!

Facebook、Instagram 应该都是我们日常生活中非常依赖的社群媒体了,每天闲来无事就要...

Day18 - this&Object Prototypes Ch3 Objects - Iteration 开头

var myArr = ['燃面', '生菜', '花椒']; myArr.a = '雉鸡'; //...

[29] 用 python 刷 Leetcode: 404

原始题目 Given the root of a binary tree, return the s...