表增加字段儲存過程

2021-04-13 11:27:07 字數 1808 閱讀 2858

--exec usp_table_addfield 'a', 'right2','char(1) default ''''' 

/* 

author: lb, date : 2005-04-12 

desc  : 用於增加表字段,包括已複製的表和未複製的表  

*/ 

create proc dbo.usp_table_addfield 

@tablename varchar(50), 

@fieldname varchar(50), 

@fieldattribute varchar(200) 

as 

set nocount on 

declare @errmsg nvarchar(400) 

set @errmsg = n'表

'+@tablename

+n'字段

'+@fieldname+n'

增加成功!' 

if not exists(select name from sysobjects where xtype = 'u' and name = @tablename) 

begin 

set @errmsg = n'表

'+@tablename

+ n'不存在, 請檢查!' 

print @errmsg 

return 

end 

if exists(select l.name from sysobjects l inner join syscolumns r on l.id = r.id and l.name = @tablename and l.xtype ='u' and r.name = @fieldname) 

begin 

set @errmsg = n'表

'+@tablename+n'

中欄位'+@fieldname

+ n'已存在, 不能增加!' 

print @errmsg 

return 

end 

if charindex('char', @fieldattribute, 1) > 0 

set @fieldattribute = substring(@fieldattribute,1,  charindex(')',@fieldattribute, 1)) +'  collate sql_latin1_general_cp1_ci_as ' + 

substring(@fieldattribute, charindex(')',@fieldattribute,1)+1, len(@fieldattribute)-charindex(')',@fieldattribute,1)) 

if exists(select * from sysobjects where xtype='u' and replinfo != 0 and name = @tablename) 

exec sp_repladdcolumn @tablename, @fieldname, @fieldattribute 

else 

exec('alter table

'+@tablename

+ ' add '+ @fieldname +'

'+@fieldattribute

)  if @@error != 0 

set @errmsg = n'表

'+@tablename

+n'字段

'+@fieldname+n'

增加失敗,請檢查!' 

print @errmsg  go

分頁儲存過程(增加了選擇字段列表 排序方式引數)

資料庫分頁儲存過程,支援倒序和公升序 引數說明 tablename 為搜尋表名 tablefield 為表的字段,約定為表的主鍵,where 為搜尋表名,要顯示所有記錄請設為 1 1 orderby 為搜尋結果排序,如order by id desc fieldlist 為字段列表,如userid,...

分頁儲存過程(增加了選擇字段列表 排序方式引數)

code 資料庫分頁儲存過程,支援倒序和公升序 引數說明 tablename 為搜尋表名 tablefield 為表的字段,約定為表的主鍵,where 為搜尋表名,要顯示所有記錄請設為 1 1 orderby 為搜尋結果排序,如order byid desc fieldlist 為字段列表,如use...

SQL SERVER 2008 表增加字段無法儲存

新裝的sql server 2008,開啟原來sql server 2008中建立的表,現在想增加一些字段,在儲存時提示錯誤,無法儲存。解決辦法 啟動sql server 2008,選擇選單 工具 選項 左側有個 designers 表設計器和資料庫設計器。然後去掉 阻止儲存要求重新建立表的更改 前...