㈠ sql server中某个表的字段值为什么不能修改
同意楼上的
你看看,这个值是不是有外键约束
比如说,A表中ID号为主键,B表中的ID号为外键
这时候
A表中的ID号只有数据'1',那你B表的ID号就不能是'2'..
还有就是可能是被设置为标识列,会自动增长的那种
还有就是这个字段有设置UNIQUE约束,或者CHECK约束
你把他所有关系都删除了,再试试看
㈡ sql怎么设某列值无法再被修改
用触发器。假设name列不允许修改,其它允许
alter TRIGGER test
ON table1
for UPDATE
AS
BEGIN
SET NOCOUNT ON;
declare @id int,@name nchar(10),@sex nchar(10),@age int;
select @id=id,@sex=sex,@age=age from inserted
delete from table1 where id=@id
select @name=[name] from deleted
insert table1 values(@id,@name,@sex,@age)
END
GO
㈢ SQL 某字段的值禁止被更新。求语句
--楼主这个可以写个触发器
--有什么疑问可以随时找我 希望采纳
create trigger triger_tbname on 表A
for insert,update
as
if exists(select 1 from inserted where kpiid=119 and datavale<>1)
begin
RAISERROR ('您可能遇到kpiid为119的datavale不为1!保存放弃。请与系统管理员联系!', 16, 1)
ROLLBACK TRANSACTION
end
㈣ SQL数据库问题,为什么不能修改数据了
有外键关联,关联表里有数据,所以不能修改。把关联数据删掉就好了,有必要可以在删除前备份。
㈤ 怎么让sql数据库里面的数据不被修改
数据库设置里面。你修改下属性。
找到去掉此提示的一个方法,打开SQL 2008 在最上面 工具-〉选项-〉左侧的 Designer-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧)把钩去掉即可。
㈥ 怎样使用SQL语句在定义表时限制一个列值不可以改变
--用插入修改删除触发器限制 表名aaa
create TRIGGER udt_aaau
ON dbo.aaa
FOR INSERT,UPDATE,DELETE AS
IF @@rowcount = 0 RETURN
DECLARE @salary_i int,
@salary_d int
SELECT @salary_i = @salary
FROM inserted
SELECT @salary_d = @salary
FROM deleted
IF @salary_i<>@salary_d
BEGIN
RAISERROR('不能修改salary',16,-1)
ROLLBACK TRANSACTION
RETURN
END
㈦ SQL数据库中的函数 如何不让用户查询或修改代码
可按如下方法查询,以sqlserver2008为例:
1、登录SQL Server Management Studio。
2、展开左边的树,先在数据库中找到自己创建自定义函数的库,如数据库-系统数据库-master。
㈧ 怎样在某一个时间点,用触发器禁止修改SQL数据库中某一个表中的数据。SQL语句怎么写
create or replace trigger aaa_t
before update or insert or delete on aaa
for each row
declare
-- local variables here
begin
if to_char(sysdate,'yyyy-mm-dd')='2013-03-10' then
Raise_Application_Error(-20001, '不能修改');
end if;
end aaa_t;
㈨ sql中如何禁止修改某一字段的字段值
用触发器就可以实现.
方法如下:
create trigger tr_A(该触发器的名字)
on A
after update
as
declare @insertid int,@deleteid int
select @deleteid=id from deleted
select @insertid=id from inserted
if(@deleteid<>@insertid)
begin
print '该字段不允许修改'
rollback transaction
end
go
㈩ sql如何设置某一列的值为默认值且不可更改
default默认值的话,建立表的时候创建就可以,让某一列不可被更改需要用触发器。
创建表:
createtabletest
(idint,
委托日期datetimedefaultgetdate());--创建test表,其中委托日期字段默认值为系统当
前时间
创建触发器:
createtriggeraaaontest--aaa为触发器名称
forupdate
as
ifupdate(委托日期)
rollbacktransaction
测试:
1、
test表中插入数据:
insertintotest(id)values(1)
此时表中数据如下:
这样也就做到了,那列不允许更改