我的SQL学习篇

 
l           用戶自定義函數實便 create function dbo.FunctionTest(@para nvarchar(50))returns nvarchar(50) returns nvarchar
begin
 if @para is null
 set @para =’
空值
 return @para
end;    
以上定義完整 , 注意的時在函數參數後面的是 returns+ 返回數類型 ( 返回類型不能為 text,ntext,image,cursor,timestamp) 我們可以對一表的一列進行選擇 . select dbo. FunctionTest(OneFieldName) from TableName 可以得到此列的所有值 , 其中 空值 取代 null .
修改已定義的函數方法 : alter function dbo.FunctionTest <New function content>  執行一個自定義函數至少應有個 select 再加上 函數名 ( 參數 )
l           我們除了經常可以用觸發器一實現數據的統一性 . 也可以用約束來實現 . 如有兩個表 :create table test1(id1 int primary key) create table test2(id2 int,name nvarchar(20)) .如果我們建立一個外鍵約束的話就可以實現了如: alter table dbo.test2 add constraint FK_test2_test1 foreign key (id2) references dbo.test1(id1) on delete cascade on update cascade 這樣可以實現更新和刪除上的同步而不用涉及到使用觸發器.
l           為了克服簡繁體出現亂碼的情況 , 我們可以在寫入數據時在漢字前加字母 N. : insert tb values(N’ 漢字 ’) .
l           DELETE TEST2 FROM TEST2 T,DELETED D WHERE T.VAR21=D.VAR11 AND T.VAR22=D.VAR12 創建一個同時滿足有兩個字段值相同的一筆記錄 .
l           create trigger t1 on testtable for update as
if update(col2) and (select count(*) from inserted) > 0
begin
print "Trigger t1 has detected an update of col2" update testtable set col3 = col3 + 10
end
l           創建數據庫 :Create DataBase DataBaseName
on primary(Name=DataBaseName,FileName=’filePath.mdf’,size=10MB,maxsize=15MB,filegrowth=20%)log on(Name=DataBaseLog,FileName=’filePath.ldf’,size=3MB,maxsize=5MB,filegrowth=1M)Collate SQL_Latin1_General_Cpl_Cl_cI_AS
l             sp_add_job   [@job_name   =]   'job_name'    ---- 創建一個工作計劃
          [,[@enabled   =]   enabled]    
          [,[@description   =]   'description']  
          [,[@start_step_id   =]   step_id]    
          [,[@category_name   =]   'category']  
          [,[@category_id   =]   category_id]    
          [,[@owner_login_name   =]   'login']  
          [,[@notify_level_eventlog   =]   eventlog_level]  
          [,[@notify_level_email   =]   email_level]  
          [,[@notify_level_netsend   =]   netsend_level]  
          [,[@notify_level_page   =]   page_level]  
          [,[@notify_email_operator_name   =]   'email_name']  
          [,[@notify_netsend_operator_name   =]   'netsend_name']    
          [,[@notify_page_operator_name   =]   'page_name']  
          [,[@delete_level   =]   delete_level]    
          [,[@job_id   =]   job_id   OUTPUT]
l           數據的完整性有三种 : 域完整性 ( :default,check,referentail), 實體完整性 ( :primary,unique) 及參考完整性 ( 多表之間 :foreign key,check). 實現這些完整性的方法有兩種 : 公佈數據的完整性 ( 即在創建發佈數據列時定義規則 ) 及過程數據完整性 ( 利用觸發器及存儲過程及其它腳本實現 ).
l           Use northwind
alter table TableName
[with check|with nocheck]                 --
使得對某些規則有效或是無效       對於已經存在編輯好的約 , 用此功能時則不要用 with
add Constraint ConstraintName <expression>
for ColumnName  
專門為某一列添加一個約束條件 , 如果沒有這一行的話 , 則是對整個表的一個約束 .
l           創建默認值 , 創建規則的方法 Create rule[default] ruleName[defaultName] as expression
在創建完默認值和規則後我們還要把它綁定到相應的對象上才生效 .sp_binddefault[bindrule] defaultName[ruleName],’TableN.conlumnName’
綁定了默認值之後如果要解除綁定的話應使用 sp_unbinddefault sp_unbindrule 方法 .
l           預存程序 :Create Procedure dbo.ProName
@varName1 SqlDbType1,@varName2 SqlDbType2 output,@varName3 SqlDbType3 output    (
默認為 input)
as
begin
statement
end
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值