Я использую следующий код:Таймаут SQL Server Delete Command
'item being 14
mySQLdel = "DELETE FROM table WHERE ID= " & item
response.write "<p>SQL Command: " & mySQLdel & "</p>"
myConn.Execute(mySQLdel)
ли запись с идентификатором 14 существует или нет, я получаю:
DELETE FROM таблицы WHERE ID = 14
Microsoft OLE DB Provider для ошибок SQL Server '80040e31'
тайм-аут запроса истекло
/index.asp, линия 58
Line 58 являются:
myConn.Execute(mySQLdel)
Эквивалентная команда прекрасно работает над другим столом, поэтому я предполагаю, что это что-то делать с разрешениями, хотя не может для жизни меня что-то выяснить.
Когда я запускаю тот же SQL в SQL Management Studio, запрос выполняется почти мгновенно.
Вот создать сценарий, который был запрашиваемую ниже:
USE [user1]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tablename](
[id] [int] IDENTITY(1,1) NOT NULL,
[var1] [nvarchar](max) NULL,
[var2] [int] NULL,
[var3] [int] NULL,
[var4] [nvarchar](50) NULL,
[datecreated] [datetime] NULL
) ON [PRIMARY]
GO
sys.dm_os_waiting_tasks
показывает
+----------------------+------------+-----------------+------------------+-----------+--------------------+-----------------------+---------------------+--------------------------+--------------------------------------------------------------------------------------------------+--+
| waiting_task_address | session_id | exec_context_id | wait_duration_ms | wait_type | resource_address | blocking_task_address | blocking_session_id | blocking_exec_context_id | resource_description | |
+----------------------+------------+-----------------+------------------+-----------+--------------------+-----------------------+---------------------+--------------------------+--------------------------------------------------------------------------------------------------+--+
| 0x00000000041F7288 | 63 | 0 | 7139 | LCK_M_U | 0x00000000869F2C40 | NULL | 69 | NULL | ridlock fileid=1 pageid=214 dbid=61 id=lock847e0b00 mode=U associatedObjectId=72057594039435264 | |
+----------------------+------------+-----------------+------------------+-----------+--------------------+-----------------------+---------------------+--------------------------+--------------------------------------------------------------------------------------------------+--+
Любые идеи?
спасибо.
Это ваш точный запрос или вы используете параметризованные запросы? Если это не ваш точный запрос, отправьте фактический запрос и определение таблицы, включая индексы. –
Это может показаться, что с помощью кувалды взломать гайку, но вы можете сделать команду delete в хранимой процедуре. Кроме того, вы пытались подключиться через Native Client, а не SQLOLEDB? http://www.connectionstrings.com/sql-server/ – John
Редактировали, чтобы показать точный запрос. Как показать определение таблицы? Прямо щелкнув по таблице, а затем по свойствам, но не совсем уверен, что вам полезно там увидеть. – user2029763