我知道连接的用法,但是当我无法决定哪一个连接是合适的, 左边或右边的时候,我有时遇到这样的情况。 这里是我被卡住的查询。 SELECT count(ImageId) as [IndividualRemaining], userMaster.empName AS ID#, CONVERT(DATETIME, folderDetails.folderName, 101) AS FolderDate, batchDetails.batchName AS Batch#, Client=@ClientName, TotalInloaded = IsNull(@TotalInloaded,0), PendingUnassigned = @PendingUnassigned, InloadedAssigned = IsNull(@TotalAssigned,0), TotalProcessed = @TotalProcessed, Remaining = @Remaining FROM batchDetails Left JOIN folderDetails ON batchDetails.folderId = folderDetails.folderId Left JOIN imageDetails ON batchDetails.batchId = imageDetails.batchId Left JOIN userMaster ON imageDetails.assignedToUser […]
假设我有两个表,产品和ProductCategories。 两个表在CategoryId上都有关系。 这是查询。 select p.ProductId, p.Name, c.CategoryId, c.Name AS Category from Products p inner join ProductCategories c on p.CategoryId = c.CategoryId where c.CategoryId = 1; 当我创build执行计划时,ProductCategories表执行聚簇索引查找,这是期望的。 但是对于表产品,它执行集群索引扫描,这让我怀疑。 为什么FK不能帮助提高查询性能? 所以我必须在Products.CategoryId上创build索引。 当我再次创build执行计划时,两个表都执行索引查找。 估计的子树成本大大降低了。 我的问题是: 除了FK有助于关系约束,它还有其他用处吗? 它提高了查询性能吗? 我应该在所有表中的所有FK列(喜欢Products.CategoryId)上创build索引吗?
我使用WinHost.com来托pipe我的网站。 SQL数据库/成员身份系统在我的本地计算机上完美工作,但是当上传到服务器时,它不起作用。 我已经正确地执行了所有步骤。 我已经联系了我的服务的支持,但已经超过了2周,没有回复。 当我尝试在我的网站上的会员页面上login或注册新用户时,我不断收到此错误。 Server Error in '/' Application. ——————————————————————————– Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Could not find stored […]
我想在SQL Server Management Studio 2008中自动生成脚本。 现在我所做的是: 右键点击我的数据库,任务,“生成脚本…” 手动select我需要的所有导出选项,然后在“select对象”选项卡上单击全选 select导出文件夹 最后点击“完成”button 有没有办法自动执行这个任务? 编辑:我想生成创build脚本,而不是更改脚本。
在研究使用表格提示时 ,我遇到了这两个问题: 我应该使用哪些locking提示(T-SQL)? HOLDLOCK对UPDLOCK有什么影响? 两个问题的答案都表示,当使用(UPDLOCK, HOLDLOCK) ,其他进程将无法读取该表上的数据,但是我没有看到这一点。 为了testing,我创build了一个表,并启动了两个SSMS窗口。 从第一个窗口中,我使用各种表提示从表中select了一个事务。 当事务正在运行时,从第二个窗口我跑了各种语句,看看哪个会被阻塞。 testing表: CREATE TABLE [dbo].[Test]( [ID] [int] IDENTITY(1,1) NOT NULL, [Value] [nvarchar](50) NULL, CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED ( [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] 从SSMS窗口1: BEGIN TRANSACTION SELECT […]
MS SQL中的WHERE子句中可以使用IF子句吗? 例: WHERE IF IsNumeric(@OrderNumber) = 1 OrderNumber = @OrderNumber ELSE OrderNumber LIKE '%' + @OrderNumber + '%'
我们有在SQL Server 2005上运行一些SQL的客户端应用程序,如下所示: BEGIN TRAN; INSERT INTO myTable (myColumns …) VALUES (myValues …); INSERT INTO myTable (myColumns …) VALUES (myValues …); INSERT INTO myTable (myColumns …) VALUES (myValues …); COMMIT TRAN; 它由一个长string命令发送。 如果其中一个插入失败,或者命令的任何部分失败,SQL Server是否会回滚事务? 如果它不回滚,我是否必须发送第二个命令来回滚? 我可以给出关于我正在使用的api和语言的具体信息,但是我认为SQL Server应该对任何语言都做出相应的回应。
我有下面的查询不起作用。 我究竟做错了什么? 这甚至有可能吗? UPDATE ProductReviews AS R INNER JOIN products AS P ON R.pid = P.id SET R.status = '0' WHERE R.id = '17190' AND P.shopkeeper = '89137'
我意识到,如果我所有的值都是固定宽度,build议使用CHAR。 但是,什么? 为什么不只是selectVARCHAR的所有文本字段只是为了安全。
我有CTE查询与大logging。 以前它工作正常。 但是最近呢,这对一些会员来说是个错误 声明终止。 报表完成前,最大recursion100已经耗尽。 所以我把OPTION (maxrecursion 0)或OPTION (maxrecursion 32767)放在我的查询上,因为我不想限制logging。 但是,结果是查询需要永久加载。 我如何解决这个问题? 这是我的代码: with cte as( — Anchor member definition SELECT e.SponsorMemberID , e.MemberID, 1 AS Level FROM tblMember AS e where e.memberid = @MemberID union all — Recursive member definition select child.SponsorMemberID , child.MemberID, Level + 1 from tblMember child join cte parent on […]