嗨,你们所有强大的SQLsuperheros在那里..任何人都可以救我从迫在眉睫的灾难和毁灭?
我正在使用Microsoft Access SQL.我想在一个表(table1)中选择不出现在另一个表(table2)中的记录,然后在table2中插入基于table1中记录的新记录,如下所示:
[table1] file_index:filename
[table2] file_index:celeb_name
我想要:
从table1中选择所有记录,其中[filename]与aud一样 ,其对应的[file_index]值在table2中不存在,带有[celeb_name] ='Audrey Hepburn'字段
有了这个选择,我想在[table2]中插入一条新记录
[file_index] = [table1].[file_index] [celeb_name] ='奥黛丽赫本'
[table1]中的[file_index]和[table2] [table1]中的一条记录与[table2]中的许多记录之间存在一对多的关系.
非常感谢
我有一个表Items(ItemID,Name,...),其中ItemID是自动生成的标识
我想在这个表中添加行FROM select.并将OriginalItemID和NewlyGeneratedID之间的引用保存到表变量中.
所以我希望它看起来如下:
DECLARE @ID2ID TABLE (OldItemID INT, NewItemID INT);
INSERT INTO Items OUTPUT Items.ItemID, INSERTED.ItemID INTO @ID2ID
SELECT * FROM Items WHERE Name = 'Cat';
Run Code Online (Sandbox Code Playgroud)
但Items.ItemID显然在这里不起作用.是否有一种解决方法使OUTPUT从SELECT语句中获取原始ItemID?
此问题与SQL Server 2005非常相似:T-SQL暂时禁用触发器
但是我不想禁用所有触发器,甚至不需要一批命令,而只是一个INSERT.
我必须处理一个商店系统,原作者将一些应用程序逻辑放入触发器(糟糕的主意!).只要您不尝试以与原始"管理前端"不同的方式插入数据,该应用程序逻辑就可以正常工作.我的工作是写一个"从登台系统导入"工具,所以我准备好了所有数据.当我尝试插入它时,触发器会用生成的产品代码覆盖现有的产品代码(不是IDENTITY数字ID!).要生成代码,它会将插入的自动生成ID用于另一个表,这样我甚至无法使用@@ IDENTITY查找刚插入的列,并使用实际的产品代码更新插入的行.
我可以采取任何方式避免极端笨拙的代码(将一些随机字符插入产品名称,然后尝试找到带有随机字符的行来更新它).
那么:有没有办法只为一个 INSERT 禁用触发器(甚至只有一个)?
我想创建一个将在其中保存日期的数据库(SQLite).现在首先要问的是声明日期列的正确语法是什么.第二个我想知道的是如何在此之后插入日期.我想知道的第三件事是如何在两者之间选择日期,例如选择包含01/05/2010和05/06/2010之间日期的所有行.
谢谢
这应该是一个相当简单的问题,但我无法在网上找到一个可靠的答案.我试图在同一个表中插入多行,但只有一个语句.我在网上看到的最流行的是以下内容,但我读过它只适用于SQL Server 2008:
INSERT INTO Table (Name, Location) VALUES
('Name1', 'Location1'),
('Name2', 'Location2'),
('Name3', 'Location3'), etc...
Run Code Online (Sandbox Code Playgroud)
我更喜欢这种方法,如果它适用于SQL Server 2005,但我不认为它会.另外一个选项,从我读过的,与INSION之后的UNION ALL后面的SELECT语句有关,这看起来很笨拙.有谁知道在2005年做到这一点的最佳语法?
谢谢.
嗨我在PHP中我会做一个动作的表单,让我们说一个process.php页面,在那个页面我将采取post值,并使用mysql_query将进行插入.现在我迷路了,我正在尝试使用visual studio 2010在ASP.net中使用sql server 2008创建一个来自并做一个插件.
我在App_Data文件夹中定义了一个sql db.基本上我需要的东西(除非有更好的方法)是:
谢谢.
我需要将XML文件内容写入oracle数据库,其中列是CLOB数据类型.我该怎么做?
地图插入有两种方式:
m[key] = val;
Run Code Online (Sandbox Code Playgroud)
要么
m.insert(make_pair(key, val));
Run Code Online (Sandbox Code Playgroud)
我的问题是,哪个操作更快?人们通常说第一个较慢,因为如果'key'在map中不存在,STL Standard首先'插入'一个默认元素,然后将'val'分配给默认元素.
但由于'make_pair',我没有看到第二种方式更好.make_pair实际上是一种方便的方式来制作'对' pair<T1, T2>(key, val).无论如何,他们都做了两个任务,一个是将'key'分配给'pair.first',两个分配'val'给'pair.second'.完成配对后,map将插入由'pair.second'初始化的元素.
所以第一种方式是1.' default construct of typeof(val)'2.分配第二种方式是1.赋值2.' copy construct of typeof(val)'
我坚持用Zend框架2获取最后一个插入ID,我放弃了这个...
有尝试过的组合:
var_dump($this->tableGateway->insert($insert));
var_dump($this->tableGateway->lastInsertValue);
var_dump($this->tableGateway->getLastInsertValue());
var_dump($this->tableGateway->getAdapter()->getDriver()->getConnection()->getLastGeneratedValue());
Run Code Online (Sandbox Code Playgroud)
值是插入表,但每行(除了第一个,给出int"1")返回null.请不要告诉我,这样一个大框架没有给出获得最后一个插入id值的可能性!?
我很遗憾地问这个,但我来自codeIgniter并且很难理解雄辩的模型插入.这是一种为我使用模型的新方法.
我已经阅读了这篇文章并了解了一些基础知识.
我有以下示例.我有一个产品有很多属性,但相关的是品牌和产品名称.(请参阅以下示例表)
产品:id(PK),名称,描述,brand_id品牌:id(PK),名称
现在问题来了.我知道我可以创建一个新品牌,我知道如何创造一个新产品.但是,我不知道如何将两者连接在一起.这是我现在的一些代码.我想创建一个新产品并自动填充品牌表.这是控制器的一部分.
简而言之.我想在products.brand_id中使用brands.id
$product = new Products;
$product->name = "product1";
$product->description = "description1";
$brand = new Brands;
$brand->name = "brand1"
$product->brand()->associate($brand);
$brand->save();
$product->save();
Run Code Online (Sandbox Code Playgroud)
为了更清楚.我有2个型号.产品和品牌型号.但是我不清楚模型中应该包含什么.这是我目前的产品型号.我认为品牌型号只应该有受保护的$ table ="brands"; 模型类中的行.
class Products extends Eloquent {
protected $table = 'products';
public function brand()
{
return $this->hasOne('brands');
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释我做错了什么.我找不到一个好的教程如何使用关系在雄辩的模型中插入数据.大多数教程都是关于显示数据.