Questions tagged «sql-server»

Microsoft SQL Server是一个关系数据库管理系统(RDBMS)。将此标签用于所有SQL Server版本,包括Compact,Express,Azure,Fast-track,APS(以前称为PDW)和Azure SQL DW。请勿将此标签用于其他类型的DBMS(MySQL,PostgreSQL,Oracle等)。除非该标签与数据库直接相关,否则请勿将其用于软件和移动开发问题。

13
简单检查SELECT查询是否为空结果
谁能指出如何检查选择查询是否返回非空结果集? 例如,我有下一个查询: SELECT * FROM service s WHERE s.service_id = ?; 我应该像下面那样做吗: ISNULL(SELECT * FROM service s WHERE s.service_id = ?) 测试结果集是否不为空?

11
创建和填充数字表的最佳方法是什么?
我已经看到了许多创建和填充数字表的方法。但是,创建和填充的最佳方法是什么?从“最重要”到“最不重要”定义“最佳”: 用最佳索引创建的表 行生成最快 用于创建和填充的简单代码 如果您不知道数字表是什么,请看这里:为什么要考虑使用辅助数字表?

14
错误:TCP提供程序:错误代码0x2746。在Linux中通过终端安装Sql期间
我正在尝试通过遵循文档https://docs.microsoft.com/pl-pl/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017在Linux中设置ms-sql服务器 SQL Server状态为“活动(正在运行)”。 执行命令时出现以下错误 sqlcmd -S localhost -U SA -P '<YourPassword>' 错误: Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:TCP提供程序:错误代码0x2746。Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:客户端无法建立连接。 我也尝试通过命令 sqlcmd -S 127.0.0.1 -U SA -P '<YourPassword>' 但是会显示相同的错误。当我尝试输入错误的密码时,它还会显示相同的错误。


2
exec失败,因为名称不是有效的标识符?
我有一个查询,我需要将其作为动态查询运行以输出有意义的列名。例如,如果我直接运行查询,它将正确返回数据。但是,如果我使用下面的代码,它将显示: The name ' SELECT (CASE WHEN A.Domain IS NOT NULL THEN A.Domain ELSE B.Domain END) AS [Domain], (CASE WHEN A.Email IS NOT NULL THEN A.Email ELSE B.Email END) AS [Email], A.[Sender Size] AS [Sender Size 1], A.[Sender Count] AS [Sender Count 1], A.[Receiver Size] AS [Receiver Size 1], A.[Receiver …


15
Node.js和Microsoft SQL Server
有什么办法可以让我的Node.js应用程序与Microsoft SQL通信?我还没有野外看到任何MS SQL驱动程序吗? 我将一个非常简单的应用程序放在一起,并且需要能够与现有的MS SQL数据库进行通信(否则,我本来应该使用mongoDB或Redis)

3
表扫描和聚集索引扫描之间有什么区别?
由于aTable Scan和aClustered Index Scan本质上都扫描表中的所有记录,因此为什么应该说聚簇索引扫描更好? 举个例子-当有很多记录时,以下各项之间的性能差异是什么?: declare @temp table( SomeColumn varchar(50) ) insert into @temp select 'SomeVal' select * from @temp ----------------------------- declare @temp table( RowID int not null identity(1,1) primary key, SomeColumn varchar(50) ) insert into @temp select 'SomeVal' select * from @temp


5
了解CUBE和ROLLUP之间的区别
我的作业要求我找出“每个日期写了多少张发票?” 我有点被困住了,向我的教授寻求帮助。她通过电子邮件向我发送了一个查询,该查询将回答以下问题:“每种类型和版本的炉灶数量已制成?要挑战但不要加分,请包括炉灶总数”。 这是她向我发送的查询: SELECT STOVE.Type + STOVE.Version AS 'Type+Version' , COUNT(*) AS 'The Count' FROM STOVE GROUP BY STOVE.Type + STOVE.Version WITH ROLLUP; 因此,我调整了该查询,直到满足我的需求为止。这是我想出的: SELECT InvoiceDt , COUNT(InvoiceNbr) AS 'Number of Invoices' FROM INVOICE GROUP BY InvoiceDt WITH ROLLUP ORDER BY InvoiceDt ASC; 它返回了我想要的以下结果。 无论如何,我决定阅读ROLLUP子句,并从Microsoft的文章开始。它说ROLLUP子句类似于CUBE子句,但是它通过以下方式与CUBE子句区分开: 多维数据集生成结果集,该结果集显示所选列中所有值组合的汇总。 ROLLUP生成一个结果集,该结果集显示所选列中值层次结构的聚合。 因此,我决定将查询中的ROLLUP替换为CUBE以查看会发生什么。他们产生了相同的结果。我想那是我感到困惑的地方。 看起来,如果您使用的是我在这里使用的查询类型,则这两个子句之间没有任何实际区别。是对的吗?还是我不了解某事?我曾经想过,当我阅读完Microsoft文章时,使用CUBE子句的结果应该有所不同。

3
插入没有值的表的语法?
我有一个使用以下架构创建的表: CREATE TABLE [dbo].[Visualizations] ( VisualizationID int identity (1,1) NOT NULL ) 由于该表没有可设置的字段,因此我不确定如何插入记录。我试过了: INSERT INTO [Visualizations]; INSERT INTO [Visualizations] () VALUES (); 都不起作用。正确的语法是什么? 编辑:由于许多人似乎对我的表感到困惑,因此它仅用于表示许多子表的父表...每个人都通过FK引用此表,而每个FK都是PK,因此跨所有在这些表中,ID是唯一的。
70 sql  sql-server  tsql  insert 

6
尽管每列都使用varchar(MAX),但导入CSV文件时SQL Server中出现错误
我正在尝试将CS​​V文件(几个演出)插入其中SQL Server,但是一旦我通过Import Wizard并最终尝试导入该文件,就会收到以下错误报告: 执行(错误)消息 错误0xc02020a1:数据流任务1:数据转换失败。“列标题”列的数据转换返回状态值4和状态文本“文本已被截断或目标代码页中的一个或多个字符不匹配”。 (SQL Server Import and Export Wizard) 错误0xc020902a:数据流任务1:“源-Train_csv.Outputs [平面文件源输出] .Columns [“标题”]“由于发生截断而失败,并且截断行位于“源-Train_csv.Outputs [平面文件源”上输出] .Columns [“标题”]“指定截断失败。在指定组件的指定对象上发生了截断错误。 (SQL Server Import and Export Wizard) 错误0xc0202092:数据流任务1:处理数据行2上的文件“ C:\ Train.csv”时发生错误。 (SQL Server Import and Export Wizard) 错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。Source-Train_csv上的PrimeOutput方法返回错误代码0xC0202092。当管道引擎调用PrimeOutput()时,该组件返回失败代码。故障代码的含义由组件定义,但错误是致命的,并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 (SQL Server Import and Export Wizard) 我创建了将文件插入到其中的表,然后将每一列都设置为容纳varchar(MAX),所以我不明白如何仍然会遇到这种截断问题。我究竟做错了什么?
70 sql  sql-server  csv 

6
在SQL Server 2008中截断/清除表变量
是否可以在SQL Server 2008中截断或刷新表变量? Declare @tableVariable table ( id int, value varchar(20) ) while @start<=@stop begin insert into @tableVariable(id,value) select id , value from xTable where id=@start --Use @tableVariable --@tableVariable should be flushed out of -- old values before inserting new values set @start = @start + 1 end
70 sql  sql-server 


5
为什么我不能在SQL Management Studio的开始/结束块中使用“创建模式”?
我生成了一个脚本,该脚本创建了该数据库的所有用户和模式,当我用IF EXISTS检查包装CREATE语句时,我发现它不允许CREATE SCHEMA调用在BEGIN / END块中运行。它抱怨说这是无效的语法。但是我可以自己运行命令。下面是代码示例。我正在使用SQL Server 2008和Management Studio R2。为什么此语法无效? --DROP SCHEMA [acme] IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'acme')) BEGIN CREATE SCHEMA [acme] AUTHORIZATION [dbo] END
70 sql  sql-server  tsql 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.