我有一个选择的过程需要很长时间才能完成,大约需要5到10分钟.
我目前没有使用NOLOCK作为MS SQL数据库引擎的提示.
与此同时,我们有另一个进程在进行更新并插入到同一个数据库和相同的表中.
第一个过程已经开始,最近过早地结束了一条消息
SQLEXCEPTION:事务在锁资源上与另一个进程死锁,并被选为死锁牺牲品.
第一个进程在相同条件但在数据库较小的其他站点上运行,因此所讨论的select语句需要更短的时间(大约30秒左右).在这些其他站点中,我没有在这些其他站点中获得死锁消息.我也没有在最初遇到问题的网站上收到此消息,但是,我认为,随着数据库的增长,我相信我必须超过一些门槛.这是我的问题:
嗨我在MVC4中使用C#将一些值插入到sql表中.实际上我想插入值并返回最后插入记录的"ID".我使用以下代码.
public class MemberBasicData
{
public int Id { get; set; }
public string Mem_NA { get; set; }
public string Mem_Occ { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
插入时,ID在数据库中自动递增.
public int CreateNewMember(string Mem_NA, string Mem_Occ )
{
using (SqlConnection con=new SqlConnection(Config.ConnectionString))
{
using(SqlCommand cmd=new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ)",con))
{
cmd.Parameters.AddWithValue("@na", Mem_NA);
cmd.Parameters.AddWithValue("@occ", Mem_Occ);
con.Open();
int modified = cmd.ExecuteNonQuery();
if (con.State == System.Data.ConnectionState.Open) con.Close();
return modified;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道ExecuteNonQuery表示影响行的数字.而不是我使用
int modified = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
但不行.请帮我解决这个问题.是否有任何代码,如cmd.ExecuteInsertAndGetID()(不使用我的代码).
我正在研究从SQLServer数据库读取以生成提取文件的SQL查询.从特定字段中删除前导零的要求之一,这是一个简单的VARCHAR(10)字段.因此,例如,如果字段包含'00001A',则SELECT语句需要将数据返回为'1A'.
SQL中有没有办法以这种方式轻松删除前导零?我知道有一个RTRIM功能,但这似乎只是删除空格.
我有一个网站插入到下表中.我需要做一些手动插入,但我不确定如何在C#中传递相当于DateTime.Now.
我在SQL server mgmt studio中的查询编辑器中运行以下操作.有没有办法在下面的查询中传递当前日期时间.
INSERT INTO [Business]
([IsDeleted]
,[FirstName]
,[LastName]
,[LastUpdated]
,[LastUpdatedBy])
VALUES
(0, 'Joe', 'Thomas',
,<LastUpdated, datetime,>
,<LastUpdatedBy, nvarchar(50),>)
Run Code Online (Sandbox Code Playgroud) 作为.NET开发人员,出于什么原因,我应该更喜欢SSIS包而不是编写代码?我们有一吨的生产包在我目前的工作,而且他们的噩梦到两个"写"(也许是画?)和维护.每个包看起来像一碗多彩的意大利面,C#和VB.NET脚本混合在抽象分解的点.要弄清楚每个"执行SQL任务"或"Foreach循环"的作用,我必须双击该死的东西并浏览分散在多个选项卡中的文字值和表达式树.
我很开放,所以我想知道是否有其他优秀的开发人员发现SSIS比编写代码更有效率.如果您确实发现SSIS更高效,请告诉我原因.
我总是对在命令后应该使用GO关键字以及命令末尾是否需要分号时感到困惑.有什么区别以及为什么/何时应该使用它们?
当我在SQL Server Management Studio中运行Generate-script时,它似乎在整个地方使用GO,但不是分号.
我需要更新/替换datatable.column中的数据.该表有一个名为的字段Content.我正在使用该REPLACE功能.由于列数据类型是NTEXT,SQL Server不允许我使用该REPLACE函数.
我无法更改数据类型,因为此数据库是第三方软件表.更改数据类型将导致应用程序失败.
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText]
SET Content = REPLACE(Content,'ABC','DEF')
WHERE Content LIKE '%ABC%'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
消息8116,级别16,状态1,行1参数数据类型ntext对替换函数的参数1无效.
有一个主键字段:name:ID - integer - 它是一个标识....所以我也需要考虑这个问题.也许将身份设置为N临时.
请告知如何实现REPLACE功能?
约.需要使用新解决方案更新3000个语句.
我在SQL中有两行代码,可以动态创建两个表,我需要做类似的事情
IF TABLE EXISTS
DROP IT AND CREATE IT AGAIN
ELSE
CREATE IT
Run Code Online (Sandbox Code Playgroud)
我的行是以下几行
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
Run Code Online (Sandbox Code Playgroud)
如何在我的程序中对这两个表应用这个概念?
通过查看其他示例,我提出了以下内容,但它似乎没有按照我的意愿工作:我希望它只更新已修改的信息,如果QtyToRepair值已更新...但它不会那.
如果我注释掉了哪里,则在每种情况下都会更新修改后的信息.正如我所说的其他例子让我变得乐观.任何线索都表示赞赏.谢谢.
沃尔特
ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified]
ON [dbo].[SCHEDULE]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE SCHEDULE SET modified = GETDATE()
, ModifiedUser = SUSER_NAME()
, ModifiedHost = HOST_NAME()
FROM SCHEDULE S
INNER JOIN Inserted I on S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber
WHERE S.QtyToRepair <> I.QtyToRepair
END
Run Code Online (Sandbox Code Playgroud) 我实际上是在尝试创建一个脚本(在Sql Server 2008中)从一个备份文件中恢复一个数据库.我做了以下代码,我收到一个错误 -
Msg 3101, Level 16, State 1, Line 3
Exclusive access could not be obtained because
the database is in use.
Msg 3013, Level 16, State 1, Line 3
RESTORE DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
IF DB_ID('AdventureWorksDW') IS NOT NULL
BEGIN
RESTORE DATABASE [AdventureWorksDW]
FILE = N'AdventureWorksDW_Data'
FROM
DISK = N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\Backup\AdventureWorksDW.bak'
WITH FILE = 1,
MOVE N'AdventureWorksDW_Data'
TO N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\DATA\AdventureWorksDW.mdf',
MOVE N'AdventureWorksDW_Log'
TO N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\DATA\AdventureWorksDW_0.LDF',
NOUNLOAD, STATS …Run Code Online (Sandbox Code Playgroud)