如何使用T-SQL脚本获取当前连接的SQL Server服务器和实例名称?
我想编写一个脚本来在SQL Server Express中创build一个admin用户(使用abcd密码)。 另外我想分配这个用户(pipe理员)完整的权利
我有一个表有几个logging。 有一个ID字段。 我想select最近的id(即最高的id)的logging。 有任何想法吗?
我如何查询所有授予postgres对象的授予? 例如,我有表“mytable”: GRANT SELECT, INSERT ON mytable TO user1 GRANT UPDATE ON mytable TO user2 我需要一些东西给我: user1: SELECT, INSERT user2: UPDATE
我有点卡在这个。 基本上我想要做一些像LINQ to SQL中的以下SQL查询: SELECT f.* FROM Foo f WHERE f.FooId IN ( SELECT fb.FooId FROM FooBar fb WHERE fb.BarId = 1000 ) 任何帮助将受到感谢。 谢谢。
它是金钱,浮动,真实,小数,_________?
最近我一直在尝试使用Redis和MongoDB,而且似乎经常会在MongoDB或Redis中存储一个id数组。 因为我询问MySQL IN操作符,所以我会坚持使用Redis来解决这个问题。 我想知道如何在IN运算符中列出大量(300-3000)的id ,看起来像这样: SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, …… 3000) 想象一下像产品和分类表一样简单的东西,通常你可以联合起来从一个类别获得产品 。 在上面的例子中,你可以看到,在Redis的一个给定的类别( category:4:product_ids )中,我返回了id为4的类别中的所有产品ID,并将它们放在IN运算符的上面的SELECT查询中。 这是如何高性能的? 这是一个“取决于”的情况? 还是有一个具体的“这是(不)接受”或“快”或“缓慢”,或者我应该添加一个LIMIT 25 ,或没有帮助? SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, …… 3000) LIMIT 25 或者,我应该修剪由Redis返回的产品ID的数组,以限制它到25,只增加25个ID的查询,而不是3000和LIMIT ,从查询里面到25? SELECT id, name, price FROM products […]
最好的方法是在mysql数据库中存储一个链表,这样插入就很简单了(也就是说,你不必每次重新编译一堆东西),并且可以很容易地按顺序拖出列表。
是否应该在email列上定义单独的索引 (用于search目的),还是索引是随“ UNIQ_EMAIL_USER约束一起“自动”添加的? CREATE TABLE IF NOT EXISTS `customer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `first` varchar(255) NOT NULL, `last` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `UNIQ_SLUG` (`slug`), UNIQUE KEY `UNIQ_EMAIL_USER` (`email`,`user_id`), KEY […]
要将NOT NULL列添加到具有多条logging的表中,需要应用DEFAULT约束。 如果表非常大,这个约束会导致整个ALTER TABLE命令花费很长时间才能运行。 这是因为: 假设: DEFAULT约束修改现有的logging。 这意味着数据库需要增加每个logging的大小,这会导致它将整个数据页面上的logging转移到其他数据页面,这需要时间。 DEFAULT更新作为primefaces事务执行。 这意味着交易日志将需要增长,以便必要时可以执行回滚。 事务日志logging整个logging。 因此,即使只修改了一个字段,日志所需的空间也将基于整个logging的大小乘以现有logging的数量。 这意味着即使两个表的logging总数相同,向具有小logging的表中添加列也会比向具有大logging的表中添加列要快。 可能的解决scheme: 吸起来,等待过程完成。 只要确保将超时时间设置得非常长。 问题在于根据logging数可能需要数小时或数天才能完成。 添加列,但允许NULL。 之后,运行UPDATE查询以设置现有行的DEFAULT值。 不要做更新*。 一次更新一批logging,否则最终会出现与解决scheme#1相同的问题。 这种方法的问题是,当你知道这是一个不必要的选项时,你最终会得到一个允许NULL的列。 我相信那里有一些最好的实践文件,说你不应该有允许NULL的列,除非有必要。 用相同的模式创build一个新表。 将该列添加到该架构。 从原始表格传输数据。 删除原始表并重命名新表。 我不确定这是否比#1好。 问题: 我的假设是否正确? 这是我唯一的解决scheme吗? 如果是这样,哪一个是最好的? 我不是,我还能做什么?