标签: sql-server

使用T-SQL查找最后一次出现的子字符串的索引

有没有一种直接的方法来使用SQL查找最后一次出现的字符串的索引?我现在正在使用SQL Server 2000.我基本上需要.NET System.String.LastIndexOf方法提供的功能.一个小的谷歌搜索透露了这个 - 函数来检索最后一个索引 - 但如果你传入一个"文本"列表达式,这不起作用.在其他地方找到的其他解决方案只有在您搜索的文本长度为1个字符时才起作用.

我可能不得不做一个功能.如果我这样做,我会在这里发布,所以你们大家可以看看它,也许可以利用它.

t-sql sql-server string search sql-server-2000

116
推荐指数
9
解决办法
34万
查看次数

删除SQL Server数据库中的所有数据

如何从数据库的所有表中删除所有记录?我可以使用一个SQL命令来执行此操作,还是每个表需要一个SQL命令?

sql sql-server delete-row multi-table-delete

116
推荐指数
6
解决办法
18万
查看次数

带有INNER JOIN的SQL DELETE

有2个表,spawnlist而且npc,我需要从中删除数据spawnlsit. npc_templateid = n.idTemplate是唯一"连接"表格的东西.我试过这个脚本,但它不起作用.

我试过这个:

DELETE s FROM spawnlist s
INNER JOIN npc n ON s.npc_templateid = n.idTemplate
WHERE (n.type = "monster");
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-server inner-join sql-delete

116
推荐指数
3
解决办法
17万
查看次数

如何使用SQL查询更改表名?

如何使用查询语句更改表名?

我使用了以下语法,但在SQL Server 2005中找不到rename关键字.

Alter table Stu_Table rename to Stu_Table_10
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

115
推荐指数
5
解决办法
36万
查看次数

用户'DOMAIN\MACHINENAME $'登录失败

我知道这几乎是重复的:错误"登录失败,用户NT AUTHORITY\IUSR""在ASP.NET和SQL Server 2008用户登录失败"用户名" -在外部System.Data.SqlClient.SqlException与LINQ项目/类库但有些东西与我服务器上的其他应用程序相比并没有加起来,我不知道为什么.

正在使用的盒子:

Web Box
SQL框
SQL测试框

我的应用程序:

我有一个ASP.NET Web应用程序,它引用了一个使用LINQ-to-SQL的类库.连接字符串在类库中正确设置.按照在外部项目/类库System.Data.SqlClient.SqlException与LINQ -用户登录失败"用户名"我还添加了此连接字符串的Web应用程序.

连接字符串使用SQL凭据(在Web应用程序和类库中):

 <add name="Namespace.My.MySettings.ConnectionStringProduction"
        connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
        providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

此连接通过将其添加到服务器资源管理器确认为正常工作.这是我的.dbml文件正在使用的连接字符串.

问题:

我收到以下错误:

System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
Run Code Online (Sandbox Code Playgroud)

现在引用ASP.NET和SQL Server 2008中的错误"登录失败的用户'NT AUTHORITY\IUSR'"它说真的是本地网络服务并且使用任何其他非域名都不起作用.

但我很困惑,因为我检查了SQL Box和SQL Test Box SQL Management Studio,并且都NT AUTHORITY/NETWORK SERVICE在安全 - >登录,在数据库级别,未列在安全 - >用户下,但在数据库级别安全 - >用户我将用户显示在连接字符串中.

在Web服务器上的NTFS级别,权限使NETWORK SERVICE具有完全控制权.

我之所以感到困惑,是因为我的Web服务器上有许多其他Web应用程序,它们在SQL Box和SQL Test Box上引用数据库,它们都可以工作.但除了我使用类库之外,我找不到它们和我当前的应用程序之间的区别.那会有关系吗?检查NTFS权限,服务器和数据库级别的安全登录设置,连接字符串和连接方法(SQL Server凭据)以及IIS应用程序池和其他文件夹选项都是相同的.

为什么这些应用程序在没有将machinename $添加到我的任何一个SQL框的权限的情况下工作?但这就是一个链接告诉我要解决这个问题的方法.

.net sql-server iis-6 web-applications sql-server-2005

115
推荐指数
9
解决办法
16万
查看次数

如何在SQL-Server中删除表变量?我应该这样做吗?

我在脚本中有一个表变量(不是存储过程).两个问题:

  1. 如何删除表变量?删除表@varName给出"不正确的snytax"错误.
  2. 我应该经常这样做吗?我听说这是一个很好的做法.像这样的小脚本真的有必要吗?

这是我的代码:

Declare @projectList table(
    name varchar(40) NOT NULL);

Insert Into @projectList
Values ('BCR-00021')

Select *
From @projectList

Drop Table @projectList -- does not work
Run Code Online (Sandbox Code Playgroud)

sql sql-server table-variable

115
推荐指数
4
解决办法
11万
查看次数

SQL-在搜索字符串时忽略大小写


我在表中有以下数据
PriceOrderShipped
PriceOrderShippedInbound
PriceOrderShippedOutbound

在SQL中我需要编写一个查询表中的字符串.在搜索字符串时,它应该忽略大小写.对于下面提到的SQL查询

SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%PriceOrder%' 
Run Code Online (Sandbox Code Playgroud)

给出了所有上述数据,而

SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%Priceorder%' 
Run Code Online (Sandbox Code Playgroud)

不给.

例如.当我搜索'PriceOrder'或'priceOrder'时它可以工作,但'priceorder'或'Priceorder'不起作用.我已尝试使用COLLATE进行以下查询,但它不起作用.请告诉我哪里出错了.

SELECT DISTINCT COL_NAME FROM myTable WHERE 
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%'
Run Code Online (Sandbox Code Playgroud)

sql sql-server case-insensitive ignore-case sql-like

115
推荐指数
3
解决办法
21万
查看次数

实现分页的有效方法

我应该使用LINQ Skip()Take()方法进行分页,还是使用SQL查询实现自己的分页?

哪个最有效?为什么我会选择一个而不是另一个?

我正在使用SQL Server 2008,ASP.NET MVC和LINQ.

sql sql-server asp.net-mvc pagination linq-to-sql

114
推荐指数
4
解决办法
10万
查看次数

WITH(NOLOCK)vs SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

可能有人给我时,我应该使用一些指导WITH (NOLOCK),而不是SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

每个的优点/缺点是什么?是否有任何意外的后果,你使用一个而不是另一个?

sql sql-server sql-server-2005

114
推荐指数
5
解决办法
13万
查看次数

在')'附近使用GETDATE调用存储过程的语法不正确

也许我有一个'下午'的时刻,但任何人都可以解释为什么我得到

消息102,级别15,状态1,行2
'''附近的语法不正确.

跑步时

CREATE PROC DisplayDate 
    (@DateVar DATETIME) 
AS 
BEGIN
    SELECT @DateVar
END
GO

EXEC DisplayDate GETDATE();
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server getdate

113
推荐指数
2
解决办法
7万
查看次数