sqlserver 触发器问题
我想做一个触发器,但修改表T的字段C1时,判断如果修改后的值为-1,则更新表T该行记录的字段C2为某值。
CreateTRIGGER [Tri_UpdateLastSaveDate] ON [dbo].[T]
for UPDATE
AS
BEGIN
if update(C1)
begin
if inserted.C1='-1'
begin
update T set C2=convert(varchar,getdate(),21)
where C3=(select C3 from inserted);
end
end
END
可是执行的时候总是报错:
No row was updated.
Error Source:Microsoft.VisualStudio.DataTools.
Error Message: The row value(s) updated or deleted either do not make the row unique or they alter multiple rows(2 rows)
表T没有主键,且C3字段实际是唯一值
我把update这句话去掉,新建了一个表AA,包含字段c1、c2,也没有主键。
替换成update AA set AA.C1='99' from AA,Inserted
where AA.C1=Inserted.C1
可是还是提示这样的错误。
请帮忙解决,着急。谢谢。
SQL code:
CreateTRIGGER [Tri_UpdateLastSaveDate] ON [dbo].[T]
for UPDATE
AS
BEGIN
if update(C1)
begin
update T set C2=convert(varchar,getdate(),21)
from T,inserted i
where T.C3=i.C3
and i.C1='-1';
end
END
SQL code
Code highlighting produced by Actipro CodeHighlighter (freeware
相关问答:
代码:
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con= DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost: ......
mysql 有没有sqlserver的 规则功能
比如sqlserver的规则如下
create rule [IsSpecial] as @ in ('y','n')
他可以指定字段的值 的 取值范围
用约束可以实现
mysql 中没有这个RUL ......
Java code:
怎么将像下面的带特殊字符(单引号、百分号,双引号,#号,美元符号......)的字符串存入sqlserver的某个字段?
String mystring="
insert into T_PUB_RZGL(N_RZID,N_RZLX,N_BMDM,N_YGGH,C_RZNR ......
比如 用户名,我程序的要求是10位字符以内,所以:
如果我sqlserver从varchar(50)存储改为用varchar(10)的话,
1.会不会减少数据空间?
2.会不会提高我程序的效率?
3.有没有必要?
小弟先谢 ......
sqlserver存储过程改oracle
谁会啊。。。帮忙改改··
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE tp_Fetch_List(
  ......