Когда я пытаюсь создать хранимую процедуру ниже, я получаю следующую ошибку:
Type Type Clash: UnericiDifier несовместимо с INT
, мне не понятно, что вызывает эту ошибку. UserID на самом деле является Int во всех моих таблицах. Может кто-нибудь сказать мне, что я сделал не так?
create procedure dbo.DeleteUser(@UserID int)
as
delete from [aspnet_Membership] where UserId = @UserID
delete from [Subscription] where UserID = @UserID
delete from [Address] where UserID = @UserID
delete from [User] where UserID = @UserID
go
Причина состоит в том, что данные не соответствуют типу данных. Я столкнулся с теми же проблемами, что я забыл делать полевое соответствие. Хотя мой случай не то же как Ваш, но он показывает подобное сообщение об ошибке.
ситуация состоит в том, что я копирую таблицу, но случайно я пишу одно поле c орфографическими ошибками, таким образом, я изменяю его с помощью ALTER
после создания базы данных. И порядок полей в обеих таблицах не идентичен. таким образом, когда я использую эти INSERT INTO TableName SELECT * FROM TableName
, результат показал подобные ошибки: Operand type clash: datetime is incompatible with uniqueidentifier
Это - simiple пример:
use example
go
create table Test1 (
id int primary key,
item uniqueidentifier,
inserted_at datetime
)
go
create table Test2 (
id int primary key,
inserted_at datetime
)
go
alter table Test2 add item uniqueidentifier;
go
--insert into Test1 (id, item, inserted_at) values (1, newid(), getdate()), (2, newid(), getdate());
insert into Test2 select * from Test1;
select * from Test1;
select * from Test2;
сообщение об ошибке:
Msg 206, Level 16, State 2, Line 24
Operand type clash: uniqueidentifier is incompatible with datetime