javascript

java

python

c#

node.js

android

reactjs

c++

php

jquery

html

css

git

ruby-on-rails

.net

ios

sql

c

string

ruby

sql server-比较T-SQL中的日期,忽略时间p

我正在使用MS SQL 2005,我想检查两个日期是否相等,但忽略了时间部分。

我知道我可以使用DATEDIFF,但担心它的速度可能很慢-该SP在数据库中的使用率很高!

有什么建议?

编辑:大卫·安德烈斯的评论:

“比较”不仅仅包括平等”
让我意识到我的问题还不够清楚-我实际上只是在检查是否平等,仅此而已。

trans by 2019-10-15T09:05:28Z

tsql-如何在SQL表中插入默认值?

我有一张这样的桌子:

create table1 (field1 int,
               field2 int default 5557,
               field3 int default 1337, 
               field4 int default 1337)

我想插入一个具有field2和field4默认值的行。

我已经尝试了insert into table1 values (5,null,10,null),但是它不起作用,并且ISNULL(field2,default)也不能工作。

插入行时,如何告诉数据库使用列的默认值?

trans by 2019-10-14T19:03:36Z

sql server 2008-SQL MERGE语句更新d

我有一个表,数据名为2566891615527592960

它只有三列

(webmeterID, DateTime, kWh)

我在表DateTime中有一组新的更新数据。

DateTimewebmeterID保持不变。 但是kWh值需要从temp_energydata表中更新。

我该如何以正确的方式编写T-SQL?

trans by 2019-10-14T13:49:35Z

SQL Server 2005-索引键列VS索引包含列

有人可以解释这两个-索引键列VS索引包含列吗?

当前,我有一个具有4个索引键列和0个包含列的索引。

谢谢

trans by 2019-10-14T08:59:45Z

tsql-连接到另一个SQL Server的T-SQL语法是什么?

如果需要将存储过程(SP)从一台SQL Server复制到另一台SQL Server,请右键单击SSMS中的SP,然后选择“脚本存储过程为>创建到>新查询编辑器窗口”。 然后,通过右键单击该窗口并选择“连接”>“更改连接...”,然后选择新服务器和F5在新服务器上运行创建,来更改连接。

所以我的问题是“连接到另一个SQL Server的T-SQL语法是什么?” 这样我就可以将其粘贴到create脚本和F5的顶部以运行它,它将切换到新服务器并运行create脚本。

在输入问题时,我意识到,如果我为您尝试做的事情提供了背景知识,您可能会想出一种更快更好的方法来实现这一目标。

trans by 2019-10-13T03:41:39Z

sql-我可以添加不带DEFAULT值的非null列

是否可以添加我指定为NOT NULL的列,我不想指定DEFAULT值,但是MS-SQL 2005说:

ALTER TABLE只允许添加可以包含空值或指定DEFAULT定义的列,或者要添加的列是Identity或timestamp列,或者如果不满足任何先前条件,则该表必须为空才能允许添加 本专栏的内容。 无法将列“ test”添加到非空表“ shiplist”中,因为它不满足这些条件。

如果是,请让我知道语法,如果否,请说明原因。

trans by 2019-10-12T08:06:34Z

c#-在SQL LIKE子句中使用SqlParameter不起作用

我有以下代码:

const string Sql = 
    @"select distinct [name] 
      from tblCustomers 
      left outer join tblCustomerInfo on tblCustomers.Id = tblCustomerInfo.CustomerId  
      where (tblCustomer.Name LIKE '%@SEARCH%' OR tblCustomerInfo.Info LIKE '%@SEARCH%');";

using (var command = new SqlCommand(Sql, Connection))
{       
    command.Parameters.AddWithValue("@SEARCH", searchString);
    ...
}

这行不通,我也尝试这样做:

const string Sql = 
    @"select distinct [name] 
     from tblCustomers 
     left outer join tblCustomerInfo on tblCustomers.Id = tblCustomerInfo.CustomerId  
     where (tblCustomer.Name LIKE @SEARCH OR tblCustomerInfo.Info LIKE @SEARCH );";

using (var command = new SqlCommand(Sql, Connection))
{       
    command.Parameters.AddWithValue("@SEARCH", "'%" + searchString + "%'");
    ...
}

但这并不奏效。 怎么了? 有什么建议么?

trans by 2019-10-12T02:11:24Z

在SQL Server中存储百分比值的最佳方法应该是什么?

我想在SQL Server中存储一个代表百分比的值,哪种数据类型应该是首选?

trans by 2019-10-10T00:28:15Z

tsql-SQL Server 2000:如何退出存储过程?

如何在存储过程中间退出?

我有一个存储过程,我想尽早进行纾困(尝试对其进行调试)。 我尝试调用RETURNRAISERROR,并且sp继续运行:

CREATE PROCEDURE dbo.Archive_Session @SessionGUID uniqueidentifier AS

    print 'before raiserror'
    raiserror('this is a raised error', 18, 1)
    print 'before return'
    return -1
    print 'after return'

[snip]

我知道它一直在运行,因为我进一步遇到了错误。 我没有看到任何照片。 如果我注释掉大部分存储过程:

CREATE PROCEDURE dbo.Archive_Session @SessionGUID uniqueidentifier AS

    print 'before raiserror'
    raiserror('this is a raised error', 18, 1)
    print 'before return'
    return -1
    print 'after return'

   /*
     [snip]
   */

然后我没有得到我的错误,我看到了结果:

before raiserror
Server: Msg 50000, Level 18, State 1, Procedure Archive_Session, Line 5
this is a raised error
before return

所以问题是:如何在SQL Server中退出存储过程?

trans by 2019-10-09T23:12:48Z

您在SQL Server中做什么创建或更改?

年份为2009,SQL Server没有CREATE或ALTER / REPLACE。 这是我要做的。

IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.ROUTINES 
           WHERE ROUTINE_NAME = 'SynchronizeRemoteCatalog' 
             AND ROUTINE_SCHEMA = 'dbo' 
             AND ROUTINE_TYPE = 'PROCEDURE')
 EXEC ('DROP PROCEDURE dbo.SynchronizeRemoteCatalog')

CREATE PROCEDURE dbo.SynchronizeRemoteCatalog
AS BEGIN
    -- body
END

对于触发器,您必须依靠专有的系统视图。

这是目前最被接受的惯例吗?

编辑:正如n8wrl所建议的,官方用词表明此功能不是一个高优先级。 因此是一个问题。

trans by 2019-10-09T18:46:57Z

TSQL如何在用户定义的函数中输出PRINT?

基本上,我想在用户定义的函数内使用PRINT语句来辅助调试。

但是我收到以下错误;

在“ PRINT”中无效使用副作用或时间相关的运算符   在一个功能内。

不能这样做吗?

无论如何要帮助我的用户定义函数调试?

trans by 2019-10-09T14:17:03Z

SQL Server-根据单个不同的列选择唯一的行

我想选择具有id的行,请参见下面的示例表:

+----+---------+-------------------+-------------+
| id | title   | email             | commentname |
+----+---------+-------------------+-------------+
|  3 | test    | rob@hotmail.com   | rob         |
|  4 | i agree | rob@hotmail.com   | rob         |
|  5 | its ok  | rob@hotmail.com   | rob         |
|  6 | hey     | rob@hotmail.com   | rob         |
|  7 | nice!   | simon@hotmail.com | simon       |
|  8 | yeah    | john@hotmail.com  | john        |
+----+---------+-------------------+-------------+

理想的结果将是:

+----+-------+-------------------+-------------+
| id | title | email             | commentname |
+----+-------+-------------------+-------------+
|  3 | test  | rob@hotmail.com   | rob         |
|  7 | nice! | simon@hotmail.com | simon       |
|  8 | yeah  | john@hotmail.com  | john        |
+----+-------+-------------------+-------------+

我不在乎哪个id会返回列值。所需的SQL是什么?

trans by 2019-10-06T20:21:52Z

多维数据集和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子句区分开:

  1. 多维数据集生成结果集,该结果集显示所选列中所有值组合的汇总。
  2. ROLLUP生成一个结果集,该结果集显示所选列中值层次结构的聚合。

因此,我决定将查询中的ROLLUP替换为CUBE以查看会发生什么。 他们产生了相同的结果。 我想那是我感到困惑的地方。

看起来,如果您使用的是我在这里使用的查询类型,则这两个子句之间没有任何实际区别。 那正确吗? 还是我不了解某事? 我曾经想过,当我阅读完Microsoft文章时,使用CUBE子句的结果应该有所不同。

trans by 2019-10-06T14:31:40Z

SQL Server-在SQL的同一行上打印整数变量和字符串

好的,所以我在Technet上搜索了答案,但无济于事。

我只想打印与两个String变量串联的整数变量。

这是我的代码,无法运行:

print 'There are ' + @Number + ' alias combinations did not match a record'

看起来像是一个基本功能,我无法想象在T-SQL中是不可能的。 但是,如果不可能,请这样说。 我似乎找不到直接的答案。

trans by 2019-10-05T20:54:09Z

tsql-如何从T-SQL中的排序表中的M行开始获取N行

有一种简单的方法可以从任何表中获取前N行:

SELECT TOP 10 * FROM MyTable ORDER BY MyColumn

有什么有效的方法可以查询从N行开始的M行

例如,

Id Value
1    a
2    b
3    c
4    d
5    e
6    f

然后像这样查询

SELECT [3,2] * FROM MyTable ORDER BY MyColumn /* hypothetical syntax */

查询从3d行开始的2行,即返回3d和第4行。

trans by 2019-10-05T20:26:47Z

sql server-T-SQL子字符串-后3个字符

使用T-SQL,我将如何获取varchar列的最后3个字符?

所以列文本是190,我需要190

trans by 2019-10-05T11:44:11Z

分区函数COUNT()可以使用DISTINCT进行覆盖

我正在尝试编写以下内容,以便获得不同的NumUser的总运行量,如下所示:

NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])

Management Studio对此不太满意。 当我删除OVER关键字时,该错误消失了,但是不会有明显区别。

OVER在分区功能中似乎不可行。我该如何找到不同的计数? 我是否使用更传统的方法,例如相关子查询?

进一步研究一下,也许这些OVER函数与Oracle的工作方式不同,因为它们无法在SQL-Server中用于计算运行总计。

我在SQLfiddle上添加了一个实时示例,尝试使用分区函数来计算运行总计。

trans by 2019-10-05T07:26:58Z

安全性-如何通过在SQL Server中进行SQL注入来克服使用单引号引起的卫生问题?

首先,我很清楚参数化查询是最好的选择,但是我在问什么使下面介绍的策略容易受到攻击。 人们坚持认为以下解决方案无效,因此我在寻找一个示例说明为何不可行。

如果动态SQL在发送到SQL Server之前使用以下转义代码内置在代码中,则哪种注入方式可以克服这种情况?

string userInput= "N'" + userInput.Replace("'", "''") + "'"

这里回答了类似的问题,但是我不认为任何答案都适用于此。

在SQL Server中,不能用“ \”转义单引号。

我相信使用Unicode的SQL走私(在此处概述)将因所产生的字符串由单引号前面的N标记为Unicode的事实而受到阻碍。 据我所知,SQL Server不会自动将其他字符集转换为单引号。 没有单引号的转义,我不认为可以注入。

我也不认为String Truncation是可行的方法。 根据Microsoft的说法,SQL Server肯定不会进行截断,因为nvarchar的最大大小为2GB。 2 GB的字符串在大多数情况下是不可行的,在我的情况下是不可能的。

二阶注入是可能的,但在下列情况下是可能的:

  1. 使用上述方法对进入数据库的所有数据进行清理
  2. 数据库中的值永远不会附加到动态SQL中(为什么当您只可以在任何动态SQL字符串的静态部分中引用表值时,为什么仍要这样做呢?)。

我并不是说这比使用参数化查询更好或替代,但我想知道我概述的内容是多么容易受到攻击。 有任何想法吗?

trans by 2019-10-03T11:07:57Z

tsql-从另一个选项卡更新行

这个问题在这里已有答案:

  • 如何从SQL Server中的SELECT更新?                                     33个答案

我有一个包含2列的表格,国家和数量。 字段国家/地区在所有国家/地区都有不同的缩写。 现在,我的工作是用实际的国家/地区名称替换这些首字母缩写词。 现在有另一个带有缩写词和相应国家名称的表。 我必须从第二个表中获取值并更新首字母缩写词匹配的第一个表。 请帮忙..

trans by 2019-10-02T21:37:40Z

sql-无法执行脚本:内存不足,无法继续执行程序

我有一个123MB的sql文件,需要在本地PC上执行。 但是我越来越

Cannot execute script: Insufficient memory to continue the execution of the program

enter image description here

如何解决这个问题?

trans by 2019-10-01T15:55:51Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 下一页 共16页