我删除 asp_net 的时候
DELETE FROM dbo.aspnet_Users WHERE UserId = '2bbdb568-070a-4762-bba8-f476d9e5c64a'
出现
消息 1934,级别 16,状态 1,第 1 行
DELETE 失败,因为下列 SET 选项的设置不正确: 'QUOTED_IDENTIFIER'。请确保 SET 选项正确无误,可以用于 计算列上的索引视图和/或索引和/或筛选的索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作。。
这样的错误...
要怎样做。。到网上查。但是看到一塌糊涂..
DELETE FROM dbo.aspnet_Users WHERE UserId = '2bbdb568-070a-4762-bba8-f476d9e5c64a'
出现
消息 1934,级别 16,状态 1,第 1 行
DELETE 失败,因为下列 SET 选项的设置不正确: 'QUOTED_IDENTIFIER'。请确保 SET 选项正确无误,可以用于 计算列上的索引视图和/或索引和/或筛选的索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作。。
这样的错误...
要怎样做。。到网上查。但是看到一塌糊涂..
解决方案 »
- 排序查询后怎么获取第一出现的数据?
- 用一条语句,查出每类商品的总销量,和每一类商品占所有商品销量的百分比
- 请问怎么将数字格式化啊
- 命名管道是什么呀?资料看了不少,就是不明白.谁能通俗讲讲吗?
- 急求一条更新的数据!!!!!!!!!!!!
- 如何简洁的建一触发器完成INSERT和DELETE的对应操作。
- 怎样查询字符串型的日期时间字段?
- 实在搞不定,请教高手一个问题的解决方法。
- ERP数据库大数据量问题一般怎么处理? 从数据库设计考虑的 还是 分帐套数据库 ?
- access中怎么样把四条基于同一个表但条件不同select语句得到的结果输出到同一画面.
- 关于字符串转化成时间格式的问题
- 请教一个存储过程的问题
不是的話,再看看這個玩藝上面有是不是有什麽觸發器
GO
?
这个也没用
declare @DeletedUser int
exec aspnet_Users_DeleteUser '网','2bbdb178-070a-4762-bba8-f476d9e5c64a'
,4,@DeletedUser output
DELETE FROM dbo.aspnet_Users WHERE UserId = '2bbdb568-070a-4762-bba8-f476d9e5c64a'
SET QUOTED_IDENTIFIER on --这句运行了之后
-- DELETE FROM dbo.aspnet_Users WHERE UserId = '2bbdb568-070a-4762-bba8-f476d9e5c64a'这个是可以执行的。。
但是运行
--declare @DeletedUser int
exec aspnet_Users_DeleteUser '网','2bbdb178-070a-4762-bba8-f476d9e5c64a'
,4,@DeletedUser output
就有问题啦。。也是之前那个问题
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER on
GO
就是这里出错,我之前设置为 SET QUOTED_IDENTIFIER off
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER on
GO
ALTER PROCEDURE [dbo].[aspnet_Users_DeleteUser]
@ApplicationName nvarchar(256),
@UserName nvarchar(256),
@TablesToDeleteFrom int,
@NumTablesDeletedFrom int OUTPUT
AS
BEGIN
DECLARE @UserId uniqueidentifier
SELECT @UserId = NULL
SELECT @NumTablesDeletedFrom = 0 DECLARE @TranStarted bit
SET @TranStarted = 0 IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0 DECLARE @ErrorCode int
DECLARE @RowCount int SET @ErrorCode = 0
SET @RowCount = 0 SELECT @UserId = u.UserId
FROM dbo.aspnet_Users u, dbo.aspnet_Applications a
WHERE u.LoweredUserName = LOWER(@UserName)
AND u.ApplicationId = a.ApplicationId
AND LOWER(@ApplicationName) = a.LoweredApplicationName IF (@UserId IS NULL)
BEGIN
GOTO Cleanup
END -- Delete from Membership table if (@TablesToDeleteFrom & 1) is set
IF ((@TablesToDeleteFrom & 1) <> 0 AND
(EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_MembershipUsers') AND (type = 'V'))))
BEGIN
DELETE FROM dbo.aspnet_Membership WHERE @UserId = UserId SELECT @ErrorCode = @@ERROR,
@RowCount = @@ROWCOUNT IF( @ErrorCode <> 0 )
GOTO Cleanup IF (@RowCount <> 0)
SELECT @NumTablesDeletedFrom = @NumTablesDeletedFrom + 1
END -- Delete from aspnet_UsersInRoles table if (@TablesToDeleteFrom & 2) is set
IF ((@TablesToDeleteFrom & 2) <> 0 AND
(EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_UsersInRoles') AND (type = 'V'))) )
BEGIN
DELETE FROM dbo.aspnet_UsersInRoles WHERE @UserId = UserId SELECT @ErrorCode = @@ERROR,
@RowCount = @@ROWCOUNT IF( @ErrorCode <> 0 )
GOTO Cleanup IF (@RowCount <> 0)
SELECT @NumTablesDeletedFrom = @NumTablesDeletedFrom + 1
END -- Delete from aspnet_Profile table if (@TablesToDeleteFrom & 4) is set
IF ((@TablesToDeleteFrom & 4) <> 0 AND
(EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_Profiles') AND (type = 'V'))) )
BEGIN
DELETE FROM dbo.aspnet_Profile WHERE @UserId = UserId SELECT @ErrorCode = @@ERROR,
@RowCount = @@ROWCOUNT IF( @ErrorCode <> 0 )
GOTO Cleanup IF (@RowCount <> 0)
SELECT @NumTablesDeletedFrom = @NumTablesDeletedFrom + 1
END -- Delete from aspnet_PersonalizationPerUser table if (@TablesToDeleteFrom & 8) is set
IF ((@TablesToDeleteFrom & 8) <> 0 AND
(EXISTS (SELECT name FROM sysobjects WHERE (name = N'vw_aspnet_WebPartState_User') AND (type = 'V'))) )
BEGIN
DELETE FROM dbo.aspnet_PersonalizationPerUser WHERE @UserId = UserId SELECT @ErrorCode = @@ERROR,
@RowCount = @@ROWCOUNT IF( @ErrorCode <> 0 )
GOTO Cleanup IF (@RowCount <> 0)
SELECT @NumTablesDeletedFrom = @NumTablesDeletedFrom + 1
END -- Delete from aspnet_Users table if (@TablesToDeleteFrom & 1,2,4 & 8) are all set
IF ((@TablesToDeleteFrom & 1) <> 0 AND
(@TablesToDeleteFrom & 2) <> 0 AND
(@TablesToDeleteFrom & 4) <> 0 AND
(@TablesToDeleteFrom & 8) <> 0 AND
(EXISTS (SELECT UserId FROM dbo.aspnet_Users WHERE @UserId = UserId)))
BEGIN
DELETE FROM [aspnet_Users] WHERE @UserId = UserId SELECT @ErrorCode = @@ERROR,
@RowCount = @@ROWCOUNT IF( @ErrorCode <> 0 )
GOTO Cleanup IF (@RowCount <> 0)
SELECT @NumTablesDeletedFrom = @NumTablesDeletedFrom + 1
END IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END RETURN 0Cleanup:
SET @NumTablesDeletedFrom = 0 IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END RETURN @ErrorCodeEND
但我看他的存储过程 没有那里 是与 SET QUOTED_IDENTIFIER 有关的。。
请高手说 这个存储过程 那里与 SET QUOTED_IDENTIFIER 这个有关。我加分
SET QUOTED_IDENTIFIER 也必須是 ON。如果 SET QUOTED_IDENTIFIER 是 OFF,含計算資料行索引的資料表或索引檢視之 CREATE、UPDATE、INSERT 和 DELETE 陳述式會失敗。
這裡說的,,你看看你存儲過程中有用到沒有嘛
但是
当在计算列或索引视图上创建或更改索引时,SET QUOTED_IDENTIFIER 必须为 ON。如果 SET QUOTED_IDENTIFIER 为 OFF,则计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列的索引视图和索引所必需的 SET 选项设置的详细信息,请参阅 SET (Transact-SQL) 中的“使用 SET 语句时的注意事项”。
请问
当在计算列或索引视图上创建或更改索引
是怎样理解。。谢谢
进行删除的时候得把
SET QUOTED_IDENTIFIER 打开