-
sql-server – 何时使用TINYINT over INT?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:156
一般来说,我总是使用Ints.我知道理论上这不是最好的做法,因为你应该使用保证存储数据的最小数据类型. 例如,当你知道你将存储的唯一数据是1,0或null时(最好将其扩展到2或3之后的几率),最好使用tinyint. 但是,我知道这样做的唯一原因是出于存储目的 – 在一[详细]
-
sql-server-2005 – 无法重建索引,因为行超过最大大小(Microsoft
所属栏目:[MsSql教程] 日期:2021-01-08 热度:194
我正在尝试在SQL Server 2005表上重建聚簇索引,并且我一直收到错误: Cannot create a row of size 8078 which is greater than the allowable maximum of 8060. 该命令只是一个标准的ALTER INDEX name ON table重建. 我不知道我是如何设法将8078字节组合[详细]
-
sql-server – 为什么这些字符在SQL Server中都是相同的?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:129
我只是不明白.看到这个SQL查询: select nchar(65217) -- ?select nchar(65218) -- ?select nchar(65219) -- ?select nchar(65220) -- ?if nchar(65217) = nchar(65218) print 'equal'if nchar(65217) = nchar(65219) print 'equal'if nchar(65217) = ncha[详细]
-
在SQL中返回空表的首选方法是什么?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:126
我知道我可以使用以下查询返回一个空表: select * from tbFoo where 1=2 但是那段代码对我来说并不好看. 有这种“标准”方式吗? 如果你想知道我为什么要做这么奇怪的事情,那是因为I can’t name the datatables I return from a stored procedure,所以我[详细]
-
sql-server – 与事务组合触发
所属栏目:[MsSql教程] 日期:2021-01-08 热度:109
假设我们有以下情况: 我们有一个表(比如Table_A),它在INSERT上有一个触发器.触发器作业是根据table_A中插入的值更新table_B中的某些行. 现在,当我们在表中简单地插入一行时,一切正常,但是我们通过事务插入数据的情况呢?触发器是否会等到所有事务语句成功[详细]
-
sql-server-2005 – 如何停止并重新启动sql server 2005?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:129
是否有命令行甚至通过sql server studio优雅地停止SQL Server 2005? 解决方法 正如mfinni所说,net stop mssqlserver或类似的将从命令行执行.要添加它,从SSMS中的GUI,您可以右键单击实例名称并单击“停止”. 您还可以从SQL Configuration Manager应用程序[详细]
-
sql-server – 如何有效地检查多列上的EXISTS?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:127
这是我定期遇到的一个问题,还没有找到一个好的解决方案. 假设有以下表结构 CREATE TABLE T(A INT PRIMARY KEY,B CHAR(1000) NULL,C CHAR(1000) NULL) 并且要求是确定可空列B或C中的任何一个实际上是否包含任何NULL值(如果是,则确定哪一个()). 还假设该表包[详细]
-
sql-server – 我的SQL Server是否已修补?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:120
副标题#e# 如何判断我的SQL Server实例是否已修补?是否有本机功能可以识别我的服务器是否有可用的补丁?哎呀,我甚至可以获得版本数据吗? 解决方法 以相反的顺序回答 我的版本是什么? 我使用两种不同的查询来标识我的SQL Server级别. 第一个是@@version.[详细]
-
sql-server-2008 – 数据库的mdf文件的位置
所属栏目:[MsSql教程] 日期:2021-01-08 热度:109
我有一个数据库项目.我的问题是我在哪里可以找到我的数据库的.mdf和_log.ldf,以便我可以将我的数据库传输给另一个用户.我正在使用Microsoft SQL Server 2008 Management Studio 我的Ssms.exe存储在此路径中 C:Program FilesMicrosoft SQL Server100Too[详细]
-
sql-server – 如果我选择超过15个字段,我会遇到灾难性的失败
所属栏目:[MsSql教程] 日期:2021-01-08 热度:145
使用sql server 2012我正在使用Pervasive SQL连接到链接服务器. 当我选择*或选择field1,field2,field3 …. field15我收到此错误: Msg 7399,Level 16,State 1,Line 1The OLE DB provider "MSDASQL" for linked server "KSLAP208" reported an error. The p[详细]
-
sql-server – SQL Server审计跟踪的最佳实践
所属栏目:[MsSql教程] 日期:2021-01-08 热度:141
我今天面临的情况是,如果我们知道谁登录了SQL并执行了一些删除操作,对我和我的公司都会非常有益. 我们遇到这样的情况,即至少有2人(有时3人)使用SQL Server Management Studio登录SQL,并执行各种功能. 我们需要的是审计线索.如果有人删除了记录(错误或其他)[详细]
-
数据库设计 – 如何将IS-A关系映射到数据库?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:171
考虑以下: entity User{ autoincrement uid; string(20) name; int privilegeLevel;}entity DirectLoginUser{ inherits User; string(20) username; string(16) passwordHash;}entity OpenIdUser{ inherits User; //Whatever attributes OpenID needs...[详细]
-
sql-server – 强制SET IDENTITY_INSERT从MS Access更快地生效
所属栏目:[MsSql教程] 日期:2021-01-08 热度:159
我正在努力将一套MS Access后端数据库升级到SQL Server.我编写了SQL脚本来在SQL Server中创建表模式.现在我正在尝试填充表格.大多数表都有自动编号主键.这是我的一般方法: For each TblName in LinkedTableNames 'Create linked table "temp_From" that l[详细]
-
sql-server – 为什么扫描比寻找这个谓词更快?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:77
我能够重现一个我将其描述为意外的查询性能问题.我正在寻找一个专注于内部的答案. 在我的机器上,以下查询执行聚簇索引扫描并占用大约6.8秒的CPU时间: SELECT ID1,ID2FROM two_col_key_test WITH (FORCESCAN)WHERE ID1 NOT IN(N'1',N'2',N'3',N'4',N'5',N'[详细]
-
sql-server – 语法不正确:创建过程必须是批处理中的唯一语句
所属栏目:[MsSql教程] 日期:2021-01-08 热度:131
之前已经问过这个问题,但所有涉及使用“go”,我不需要这里,至少我是这么认为的. 我跟随这个tut https://www.youtube.com/watch?v=-xMGwiV5A6o,接近1:25标记.他似乎执行而我的没有. Select * From Snacks Create Proc spGetSnackByID @Id int as Begin Sele[详细]
-
sql-server – 为什么IDENTITY_INSERT ON一次仅允许在一个表上?
所属栏目:[MsSql教程] 日期:2021-01-08 热度:97
在这种情况下,一次只能在一个数据库表中将 IDENTITY_INSERT设置为ON,但为什么呢?由于IDENTITY列不是全局唯一的,我无法想象可能由于同时将标识插??入多个表而导致的任何危险情况(至少不比通常用IDENTITY INSERT捏造更危险). IDENTITY INSERT应该很少使用,[详细]
-
来自外部应用程序的Access数据库中的日期字段的月份名称(C#)
所属栏目:[MsSql教程] 日期:2021-01-08 热度:146
我想在C#中在运行时填充下拉列表.我在Access 2003数据库中有一个日期/时间字段(例如,01/05/2000).我希望在运行时的下拉列表中有月份名称(即1月,2月,…). SELECT DISTINCT MonthName(Month(DATE_OF_BOOKING)) AS MNTH FROM TRAVEL_DETAILS WHERE YEAR(DATE_[详细]
-
sql – SPOOL命令不会在查询中保存结果
所属栏目:[MsSql教程] 日期:2021-01-08 热度:139
我正在使用SQL Developer,我正在尝试使用spool命令将查询结果保存到文本文件中. spool D:file.txtSELECT * FROM TABLESPOOL OFF 当我打开创建的文件时,它只有我的查询: “SELECT * FROM TABLE” 但不是结果.我究竟做错了什么? 解决方法 尝试使用返回较[详细]
-
sql-server – 什么被认为对sql server安全性更安全
所属栏目:[MsSql教程] 日期:2021-01-08 热度:152
在SQL Server 2005/2008上设置安全性时.什么是更安全的选项? 仅限Windows身份验证模式 混合身份验证 是否许多桌面客户端(胖客户端)访问服务器或者少数Web服务器将访问它是否重要? 编辑 为什么它更安全?使用Windows身份验证意味着我们可以避免将连接字符[详细]
-
sql-server – 为什么执行语句的速度取决于网络连接?
所属栏目:[MsSql教程] 日期:2021-01-02 热度:130
看起来执行T-SQL的速度取决于网络连接对服务器的延迟.我假设如果SQL Server没有任何内容可以向客户报告,它只会执行,直到完成但测试显示另一个故事. create procedure UselessLoop @I intasdeclare @D datetime = getdate()while @I 0 set @I -= 1print dat[详细]
-
sql server将datetime转换为另一个时区?
所属栏目:[MsSql教程] 日期:2021-01-02 热度:127
如何将我的时区中的当前时间(日期时间)转换为另一个时区,比如说法国?我环顾四周,但没找到任何可以帮助我的帖子.我正在使用SQL Server 2008. 解决方法 选择CONVERT(datetime,SWITCHOFFSET(CONVERT(datetimeoffset,GetUTCDate()),’05:30′))Date_India,[详细]
-
sql-server – 堆上的非聚簇索引与聚簇索引的性能
所属栏目:[MsSql教程] 日期:2021-01-02 热度:148
副标题#e# This 2007 White Paper比较了组织为聚簇索引的表上的单个select / insert / delete / update和range select语句的性能与组织为具有与CI表相同的键列上的非聚簇索引的堆的表的性能. 通常,聚簇索引选项在测试中表现更好,因为只需要维护一个结构,因[详细]
-
sql – 检测oracle表中每行中具有相同值的所有列
所属栏目:[MsSql教程] 日期:2021-01-02 热度:119
每天,这些要求都变得更加奇怪和怪异. 我被要求组合一个查询来检测表中哪些列包含所有行的相同值.我说“这需要通过程序来完成,这样我们才能在表格的一次传递中完成,而不是N次传递.” 我被推翻了. 长话短说.我有这个非常简单的查询来演示这个问题.它在测试集[详细]
-
如何在sql中将两行合并为一行?
所属栏目:[MsSql教程] 日期:2021-01-02 热度:50
我有一张桌子 EmployeeID IndividualPay FamilyPay IsActive 1 200 300 true 1 100 150 false 但我希望输出如下(我想使用此输出与其他表的内连接) EmployeeID IndPay_IsActive IndPay_IsNotActive FamilyPay_IsActive FamilyPay_IsNotActive 1 200 100 300[详细]
-
sql – 删除而不是删除触发器中的记录
所属栏目:[MsSql教程] 日期:2021-01-02 热度:143
我想要一个而不是删除触发器,以便我可以从正被删除的表行中获取文本字段值,以便在实际删除时保留这些字段.出于某种原因,我无法在标准的Delete触发器中将它们从Deleted表中拉出来(SQL错误输出). 有没有办法在“而不是删除”触发器内进行实际删除而不使触发[详细]