/*
* 創建時間:2011-10-09
* liud
* 使用目錄:
* ==============================================
* 01==查看錶描述信息
* 02==添加列(可多列)\修改列\刪除列\修改列名
* 03==刪除表\字段描述
* 04==添加表\字段描述(方法1、2)
* 05==修改表\字段描述
* 06==修改列允許爲空或不爲空
* 07==創建表\主鍵\外鍵\索引
* 08==表列增加、修改默認值
* 09==函數Split
* 10==FOR XML AUTO
* 11==FOR XML PATH 多種使用方式
* 12==stuff('abc',2,1,'B') 結果:aBc
* ==============================================
*/
--111111111111111==============================查看錶描述信息
SELECT *
FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'CONTRACT', 'column', NULL)
--222222222222222==============================添加列(可多列)\修改列\刪除列
ALTER TABLE 表 ADD 列 int,可多列 逗號分隔
ALTER TABLE tableName ALTER column columnName varchar(4000)
ALTER TABLE tableName drop column columnName
EXEC sp_rename 'tableName.column1' , 'column2' --(把表名爲tableName的column1列名修改爲column2)
--33333333333333==============================刪除表\字段描述
--
EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','CONTRACT',null,null
EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','CONTRACT','column',BrandId
--4444444444444==============================添加表\字段描述(方法1、2)
--表描述
EXEC sp_addextendedproperty N'MS_Description', '添加表描述', N'user', N'dbo', N'table', N'表', NULL, NULL
--方法1
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'添加字段描述1'
, @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表', @level2type=N'COLUMN',@level2name=N'列'
GO
--方法2
EXECUTE sp_addextendedproperty N'MS_Description', '添加字段描述2', N'user', N'dbo', N'table', N'表', N'column', N'列'
GO
--5555555555555==============================修改表\字段描述信息
--
EXEC sp_updateextendedproperty 'MS_Description','修改表描述','user',dbo,'table','表',null,null
EXEC sp_updateextendedproperty 'MS_Description','修改字段描述','user',dbo,'table','表','column',a1
--666666666666666==============================修改列允許爲空或不爲空
--
--允許爲空
alter table 表 ALTER COLUMN 列 bit NULL
alter table 表 ALTER COLUMN 列 BIT NOT NULL
--77777777777777==============================創建表\主鍵\索引
--
--檢查索引是否存在,存在則刪除
if exists (select 1
from sysindexes
where id = object_id('dbo.SCCLWayBill')
and name = 'IX_SCCLWayBill_DispatchNo'
and indid > 0
and indid < 255)
drop index dbo.SCCLWayBill.IX_SCCLWayBill_DispatchNo
GO
--創建主鍵
CREATE TABLE tbname(
id INT NOT NULL, --不爲空
NAME NVARCHAR(20) NULL, --可爲空
STATUS INT DEFAULT 0, --默認值
constraint PK_tbname primary key (id), --主鍵
waijian int foreign key(waijian) references A_tablename(AID)--外鍵
)
--創建索引
--
create index IX_tbname_id on dbo.tbname (
id ASC
)
go
--8888888888888==============================表列增加默認值
ALTER TABLE [tbName] ADD CONSTRAINT [約束名(自定義)] DEFAULT ((2)) FOR [ColumnName]
--如果需要修改默認值
ALTER TABLE [tbName] DROP CONSTRAINT [約束名(自定義)] --刪除約束 然後再新增
--
--999999999999999============================Split函數
CREATE Function [Split](@Sql varchar(8000),@Splits varchar(10))
returns @temp Table (a varchar(100))
As
Begin
Declare @i Int
Set @Sql = RTrim(LTrim(@Sql))
Set @i = CharIndex(@Splits,@Sql)
While @i >= 1
Begin
Insert @temp Values(Left(@Sql,@i-1))
Set @Sql = SubString(@Sql,@i+1,Len(@Sql)-@i)
Set @i = CharIndex(@Splits,@Sql)
End
If @Sql <> ''
Insert @temp Values (@Sql)
Return
End
--測試
--SELECT * FROM dbo.Split('L.I.U.D.O.N.G','.')
-------------------10=========================FOR XML AUTO
DECLARE @temT TABLE(ID INT,NAME NVARCHAR(50))
INSERT INTO @temT VALUEs(1,'liudong');
INSERT INTO @temT VALUEs(2,'shichunjie');
SELECT * FROM @temT FOR XML AUTO
-------------------11=========================FOR XML PATH
SELECT * FROM @temT FOR XML PATH
SELECT * FROM @temT FOR XML PATH('T')
SELECT * FROM @temT FOR XML PATH('')
SELECT cast(id AS NVARCHAR(10))+',',NAME+'.' FROM @temT FOR XML PATH('')
-------------------12=========================stuff('abc',2,1,'B')
select stuff('abc',2,1,'B')
sql 使用大全 更新中...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.