㈠ 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)
此時表中數據如下:
這樣也就做到了,那列不允許更改