sql-server-2008相关内容
我一直在与一位同事一起研究 CROSS/OUTER APPLY,我们正在努力寻找在哪里使用它们的真实示例. 我花了很多时间查看 我什么时候应该使用 Cross Apply 而不是 Inner Join? 和谷歌搜索,但主要(唯一)示例似乎很奇怪(使用表中的行数来确定从另一个表中选择多少行). 我认为这种情况可能会受益于 OUTER APPLY: 联系人表(包含每个联系人的 1 条
..
作为标题,我有一个现有的表,它已经填充了 150000 条记录.我添加了一个 Id 列(当前为空). 我假设我可以运行查询以使用增量数字填充此列,然后设置为主键并打开自动增量.这是正确的方法吗?如果是这样,我该如何填写初始数字? 解决方案 不 - 你必须反其道而行之:从一开始就将其添加为 INT IDENTITY - 它将是执行此操作时填充标识值: ALTER TABLE dbo.
..
..
..
在尝试提高极其缓慢的查询的速度(在两个只有约 50,000 行的表上,如果重要的话,在 SQL Server 2008 上需要几个 分钟),我将问题缩小到OR 在我的内部连接中,如: 选择 mt.ID、mt.ParentID、ot.MasterIDFROM dbo.MainTable AS mtINNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt
..
您能帮我用 SQL 语句查找多个字段的重复项吗? 例如,在伪代码中: 选择计数(field1,field2,field3)从表其中 field1、field2、field3 的组合出现多次 从上面的语句中如果有多次出现我想选择除了第一条之外的每条记录. 解决方案 要获取有多个记录的字段列表,可以使用.. 选择 field1,field2,field3, count(*)从表名按
..
我想在 sql 2008 上编写一个查询,该查询将报告所有有权访问特定数据库的用户,或数据库中的对象,例如表、视图和存储过程,直接或由于角色,等.此报告将用于安全审计目的.不确定是否有人有完全符合我需求的查询,但希望能给我一个好的开始.sql 2008、2005 或 2000 都可以,我可以根据需要进行转换. 解决方案 这是我第一次破解查询,基于 Andomar 的建议.此查询旨在提供用户
..
CTE 还是 Temporary Tables 哪个性能更高? 解决方案 我会说它们是不同的概念,但不能说“粉笔和奶酪". 临时表非常适合重复使用或对一组数据执行多次处理. CTE 可用于递归或简单地提高可读性. 而且,像视图或内联表值函数也可以像宏一样在主查询中进行扩展 临时表是另一个表,在范围内有一些规则 我已将 procs 存储在我同时使用的地方(以及表变量
..
我在 google 的帮助下编写了这个查询,以便从表中创建一个分隔列表,但我对此查询一无所知. 谁能解释一下发生了什么 选择E1.deptno,allemp = 替换 ((SELECT E2.ename AS 'data()'来自 emp AS e2其中 e1.deptno = e2.DEPTNOFOR xml PATH('')), '', ', ')来自 EMP AS e1按部门分组;
..
一如既往,我的惊讶会有一个合理的解释,但在那之前...... 我有这个问题 delete from Photo where hs_id in (select hs_id from HotelSupplier where id = 142) 执行得很好(后来我发现整个照片表都是空的) 但奇怪的是:HotelSupplier中没有hs_id字段,它叫hs_key! 所以当我执行最
..
我需要知道如何使用 SQL Server 代理作业每天运行 SQL 查询,并且需要最少的配置设置. 解决方案 展开 SQL Server Agent 节点并右键单击 SQL Server Agent 中的 Jobs 节点并选择 'New Job' 在 'New Job' 窗口中,在 'General' 选项卡上输入作业名称和描述. 选择窗口左侧的'Steps',然后点击底部
..
..
我已经有这个问题几个星期了.问题是查询在网站上运行需要 4-5 分钟,而在 ssms 中运行最多需要 2 或 3 秒.我还发现,在更改此查询(例如添加 customerId 变量)后,它将开始在网页上快速运行,但到第二天又变慢了.有问题的查询是这个: 声明@customerID INT设置@customerID = @CustID声明@MyTable 表(Iden int NOT NULL ID
..
..
我有两个数字作为用户输入,例如 1000 和 1050. 如何使用 sql 查询在单独的行中生成这两个数字之间的数字?我想要这个: 1000100110021003..1050 解决方案 使用 VALUES 关键字选择非持久值.然后使用 JOINs 生成很多很多的组合(可以扩展为创建数十万行甚至更多行). 短而快的版本(不是那么容易阅读): WITH x AS (SELECT
..
我有一个 StudentMarks 表,其中包含 Name、Maths、Science、English 列.数据就像 姓名、数学、科学、英语蒂拉克, 90, 40, 60拉吉,30 岁、20 岁、10 岁 我想把它安排成如下: 姓名、主题、标记蒂拉克,数学,90蒂拉克,科学,40蒂拉克,英语,60 使用 unpivot 我是能够正确获取Name、Marks,但无法将源表中的列名获取到所需结
..
我希望将 '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15...'(逗号分隔)拆分为表格或表变量. 有没有人有一个函数可以连续返回每一个? 解决方案 这里有一些老式的解决方案: /*将字符串拆分为以指定字符分隔的部分.*/创建函数 [dbo].[SDF_SplitString](@sString nvarchar(2048),@cDelimiter ncha
..
我正在开发一个 ASP.NET MVC 应用程序.我一直在使用 IIS6 和 SQL 2008 Express 在 Windows Server 2003 上开发它,一切都运行良好.我最近决定试用 Windows 7 测试版,所以现在我使用的是 IIS7,但在连接到我的数据库时遇到了问题,我似乎无法弄清楚. 我可以很好地运行/调试应用程序,但是每当我尝试访问需要访问数据库的页面时,都会收到以
..
我需要填充一个表格来存储两个给定日期之间的日期范围:09/01/11 - 10/10/11 所以在这种情况下,表格将从 2011 年 9 月 1 日开始并每天存储到 11 年 10 月 10 日我想知道在 SQL Server 中是否有一种巧妙的方法来执行此操作 - 我目前正在使用 SQL Server 2008.谢谢 解决方案 Easy on SQL 2005+;如果您有数字或计数
..
我想在 SQL Server 2008 中添加一个用户,这样我就可以使用 SQL Server 身份验证而不是 Windows 身份验证来连接到 SQL,并尝试使用此代码创建一个登录用户: CREATE login [newLog] with password = 'passnewLognewLog' 我完成了,但是当我想使用 SQL 身份验证连接到 SQL Server 时,我收到了这条消息
..