【发布时间】:2016-05-04 10:59:45
【问题描述】:
这是我的存储过程:
CREATE PROC InsertTINH
@MaTinh char(4),
@TenTinh varchar(50),
@MaNuoc char(2)
as
begin
if exists (select * from TINH where MaTinh = @MaTinh)
begin
print 'Ma Tinh already exists'
return
end
else
begin
if not exists (select * from NUOC where MaNuoc = @MaNuoc)
begin
print 'Ma nuoc does not exist'
return
end
else
begin
insert into TINH
values ('@MaTinh', '@TenTinh')
insert into SQL_HOME.QLXNK.dbo.TINH
values ('@MaTinh', '@MaNuoc')
print 'Inserted successfully ' + @TenTinh
end
end
end
GO
我在 2 个不同的主机中有 2 个表,在本地是 TINH,第二个是 SQL_HOME.QLXNK.dbo.TINH
- Table1(MaTinh char(4) 主键不为空,TenTinh varchar(50))
- Table2(MaTinh char(4) 主键不为空,MaNuoc char(2))
当我执行时
exec InsertTINH 'VN01','Ho Chi Minh','VN'
我收到一个错误:
字符串或二进制将被截断
但只需正常插入 --> 就可以了!
insert into TINH
values ('VN01', 'Ho Chi Minh')
insert into SQL_HOME.QLXNK.dbo.TINH
values ('VN01','VN')
我的存储过程有什么问题?
【问题讨论】:
标签: sql sql-server tsql stored-procedures