我将给出一个当前方法的伪代码示例,如果有人知道某个方法一次不能运行一行,我会非常感激.我正在使用MS SQL Server 2008.
define cursor for the data to be inserted (about 3 million records)
loop
(
insert record into table 1
use scope_identity() to get key
insert record into table 2 that references table 1
)
Run Code Online (Sandbox Code Playgroud)
我宁愿同时对两个表进行某种插入,因为游标和循环很慢.
在有人讨论为什么我在两个具有1对1关系的单独表中插入内容之前,这是因为第一个表无法修改,我需要第二个(临时)表中的信息以供稍后的数据转换操作参考.
不,我无法添加临时列来将参考数据保存到无法修改的表中,因为它无法修改.这是一个实时系统,我没有权限更改表.
谢谢!
附加信息:
防爆
Source:
1 a big monkey
2 a tall elephant
3 a big giraffe
4 a tiny cow
5 a tall cow
Dest:
Table 1 Table 2
monkey 1 big
elephant 2 tall
giraffe 3 big
cow …Run Code Online (Sandbox Code Playgroud) 我只需要将一个字符串拆分为:"STANS", "Payment, chk#1", ,1210.000基于的数组,.字符串列表中的结果是
STANS
Payment, chk#1
1210.000
Run Code Online (Sandbox Code Playgroud) 假设我在目录中有以下文件
如何编写一个批处理循环,以便拾取所有".js"文件,但".min.js"不是,并且.js文件名的输出可以更改为追加.min.js
例如:
for %%A IN (*.js) DO @echo %%A "->" %%~nA ".min.js"
Run Code Online (Sandbox Code Playgroud)
理想情况下会产生以下内容,并注意file2.min.js不会显示在左侧.
谢谢你的帮助.
我需要为MS-Access 2000编写SQL查询,以便在存在时更新行,但如果不存在则插入.(我相信这被称为"upsert")
即
如果行存在...
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
Run Code Online (Sandbox Code Playgroud)
如果它不存在......
INSERT INTO Table1 VALUES (...)
Run Code Online (Sandbox Code Playgroud)
这可以在一个查询中完成吗?
我想对以下问题提出一些建议:假设你想为VCL控件编写适配器.所有适配器应具有相同的基类,但在包装特殊控件方面有所不同(例如,从TEdit获取值与从TSpinEdit获取值不同).所以第一个想法就是创建一个类层次结构
TAdapter = class
end;
TEditAdapter = class (TAdapter)
end;
TSpinEditAdapter = class (TAdapter)
end;
Run Code Online (Sandbox Code Playgroud)
现在我想引入一个字段来保存对vcl控件的引用.在我的特殊适配器中,我想 - 当然 - 使用具体的子类.但是Base类还应该包含一个引用(例如,如果我想使用适配器使控件可见).
可能性1(物业存取中的向下):
TAdapter = class
protected
FCtrl : TControl;
end;
TEditAdapter = class (TAdapter)
public
property Control : TEdit read GetControl write Setcontrol;
end;
{...}
function TEditAdapter.GetControl : TEdit;
begin
Result := FCtrl as TEdit;
end;
Run Code Online (Sandbox Code Playgroud)
因此,如果我实现一个特定的方法,我使用属性Control,如果我在基类中执行某些操作,则使用protected字段.
可能性2(使用通用基类):
TAdapter = class
end;
TAdapter <T : TControl> = class (TAdapter)
protected
FCtrl : T;
end;
TEditAdapter = class (TAdapter <TEdit>)
end;
Run Code Online (Sandbox Code Playgroud)
您更喜欢哪种解决方案?还是有第三种解决方案,哪种更好? …
我patindex用于"MD"或"DO"的模式搜索.以下语句返回3.我是以错误的方式使用它还是有另一种检查条件的方法?
select PATINDEX ('%[MD,DO]%','FHoisegh MD')
Run Code Online (Sandbox Code Playgroud) 前言:我已经遍布stackoverflow.com和google了解这一点.我已经找到了数百个可能的答案,但要么它不是正确的SQL Server版本,要么根本不适用于SQL Server,而且我并不擅长能够使查询适应SQL Server 2000的TSQL.大多数示例都假设我想做某种聚合 - 我不需要这样做.此外,许多示例假设行数是固定的(每年四分之一的行转换为4列或租约已知的数字.每行我将有不同数量的列.
我在SQL Server 2000中有一个存储单词的表.它看起来像这样:
MAPENTRY_ID int NOT NULL
PARENT_ID int NOT NULL
ENCODED varchar(10) NOT NULL
Run Code Online (Sandbox Code Playgroud)
MAPENTRY_ID是主键.PARENT_ID存储"父"字的MAPENTRY_ID.它是一个单词列表,由于这些单词是CaSe敏感的,因此给定的"父"可能有不止一个"子"字.如果只存在一个单词/个案(下面的例子是"ABC"),那么MAPENTRY_ID将等于PARENT_ID.
一些示例数据如下所示:
MAPENTRY_ID PARENT_ID ENCODED
----------- --------- -------
8274302 8274302 abaco
8274306 8274302 Abaco
8274308 8274302 ABACO
5217985 5217985 abbynormal
5217987 5217985 Abbynormal
5217986 5217985 AbbyNormal
5217990 5217985 ABBYNORMAL
9285 9285 ABC
1144839 1144839 abc123
1144864 1144839 ABC123
5129019 5129019 abcapp
5129020 5129019 AbcApp
5129021 5129019 ABCAPP
8329759 8329759 abdominals
8329757 8329759 Abdominals
8329761 8329759 ABDOMINALS
8278875 8278875 …Run Code Online (Sandbox Code Playgroud) 我昨天问了一个关于如何将多个结果输入一个字段的问题并给出了答案GROUP_CONTACT().
我把它放到我的代码中,它工作正常.我需要为两个字段执行此操作,因此我现在已经开始在相同的sql语句中使用它两次.不幸的是,它用逗号拉回第二个字段的空列表,我不太清楚为什么.
这是我的示例产品数据:
pid || prod
1 || top
2 || sweater
Run Code Online (Sandbox Code Playgroud)
这是我的样本库存数据(有些库存没有两种尺寸,例如腰围和胸围):
sid || size1 || size2 || pid
1 || M || || 1
2 || L || || 1
3 || XL || || 1
4 || L || || 2
5 || XL || || 2
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
SELECT p.id, GROUP_CONCAT(s.size1) size1, GROUP_CONCAT(s.size2) size2, p.prod
FROM products p JOIN stock s ON s.prodid = p.id
Run Code Online (Sandbox Code Playgroud)
这是它应该带来的:
pid || size1 || size2 || prod
1 || …Run Code Online (Sandbox Code Playgroud) 我在使用这个getFetchSize()功能时遇到了麻烦.
我只需要知道SQL查询是否返回零行.
我试过这个简单的陈述:
if (rs.getFetchSize()==0)
System.out.println("HEADLINE");
Run Code Online (Sandbox Code Playgroud)
其中rs是的ResultSet类型.上面的代码似乎不起作用.它始终打印消息是否rs为空.
我检查了SQL查询本身,并在行存在时正确返回非空结果.
有关如何确定查询是否返回0行的任何想法?我用谷歌搜索,找不到任何答案.
我想使用Execute SQL Task查询varbinary从数据库表中返回数据.查询需要一个参数,UniqueIdentifier该参数存储string在Package变量中.此查询的结果(varbinary数据)将存储在Byte类型的第二个变量中.
下表显示了我的局部变量列表,请注意DocumentGuid是由控制流的另一部分预先填充的
| Variable Name | Qualified Name | Scope | Data Type | Comments |
|---------------|--------------------|---------|-----------|------------------------------------------|
| DocumentGuid | User::DocumentGuid | Package | String | Used to store a GUID value |
| DocumentData | User::DocumentData | Package | Byte | Used to hold varbinary data from a query |
Run Code Online (Sandbox Code Playgroud)
当我尝试在这样的Execute SQL Task查询中使用它时:
SELECT DocData
FROM docsRepo
WHERE DocumentGuid = ?
Run Code Online (Sandbox Code Playgroud)
传递参数为
| …Run Code Online (Sandbox Code Playgroud) sql ×5
sql-server ×3
delphi ×2
batch-file ×1
bulkinsert ×1
cursor ×1
delphi-2010 ×1
dos ×1
downcast ×1
for-loop ×1
foreign-keys ×1
generics ×1
inheritance ×1
java ×1
jdbc ×1
ms-access ×1
php ×1
ssis ×1
ssis-2008 ×1
t-sql ×1
upsert ×1