用SQL語句創建一個表,其中一個字段是主鍵類型是varchar(? 愛問
在插入時用觸發器 假定表為 my_table,主鍵是id,默認值是'',插入時查找max(id),取后4位,然后 +1,加上當前日期即可 CREATE TRIGGER my_table_insert ON [my_table] FOR INSERT AS declare @idno varchar(12),@rows numeric(4) select @rows=convert(numeric(4),substring(max(id),9,4)) from my_table select @idno=convert(varchar(8),getdate(),112)+substring(convert(varchar(5),10000+@rows+1),2,4) update my_table set my_ =@idno from my_table,inserted where my_ =""。
SQL語句怎么查詢表的主鍵
1:利用SQL自帶的存儲過程
EXEC sp_pkeys @table_name='表名'?
2:利用系統表INFORMATION_*_COLUMN_USAGE
SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_*_COLUMN_USAGE
WHERE TABLE_NAME='表名'
sp_pkeys
返回當前環境中單個表的主鍵信息。
語法
sp_pkeys [ @table_name = ] 'name'
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
參數
[@table_name =] 'name'
是要返回其信息的表。name 為 sysname 類型,無默認值。不支持通配符模式匹配。
[@table_owner =] 'owner'
表示指定表的所有者。owner 為 sysname 類型,其默認值為 NULL。不支持通配符模式匹配。如果未指定 owner,則應用基礎 DBMS 的默認表可視性規則。
在 Microsoft? SQL Server? 中,如果當前用戶擁有的表具有指定名稱,則返回該表的列。如果未指定 owner,且當前用戶未擁有指定 name 的表,則該過程查找由數據庫所有者擁有的具有指定 name 的表。如果有,則返回該表的列。
[@table_qualifier =] 'qualifier'
是表限定符。qualifier 為 sysname 類型,其默認值為 NULL。多種 DBMS 產品支持表的三部分命名方式 (*)。在 SQL Server 中,該列表示數據庫名。在某些產品中,該列表示表所在數據庫環境的服務器名。
返回代碼值
參考資料:http://**imagesnew/software/tsql/ts_sp_pa-pz_*
如何定義SQL主鍵
在SQL數據庫中,如何定義SQL主鍵是經常要遇到的問題,下面將為您介紹兩種定義SQL主鍵的方法,供您參考,希望對那您有所幫助。
SQL主鍵是數據庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說SQL主鍵在一張表中的記錄值是唯一的。
建立SQL主鍵有兩種方法:一種是在數據庫提供的GUI環境中建立,另一種是通過SQL語句執行建立,下面分別介紹。
1.在數據庫提供的GUI環境中建立(以SQL7為例)。
輸入表信息后按Ctrl鍵同時選中多行,然后點上面的主鍵按鈕就行了。
2.通過SQL語句執行建立。又分兩種,一是在建表語句中直接寫,二是建表之后更改表結構。
在建表語句中直接寫:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
建表之后更改表結構:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
【】
2.使用SQL語句創建主鍵約束
使用SQL語句創建主鍵約束可以在創建表(Create Table)或修改表(Alter Table)時進行 創建。
在修改表中創建主鍵約束語法:
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
PRIMARY KEY [CLUSTERED | NONCLUSTERED]
{(Column[,…n])}
參數說明:
CONSTRAINT:創建約束的關鍵字。
constraint_name:創建約束的名稱。
PRIMARY KEY:表示所創建約束的類型為主鍵約束。
CLUSTERED | NONCLUSTERED:是表示為PRIMARY KEY或UNIQUE約束創建聚集或非聚集索引的關鍵字。PRIMARY KEY約束默認為CLUSTERED,UNIQUE約束默認為 NONCLUSTERED。
下面在指定的數據庫中創建一個名為mytable的數據表,并在該數據表中將“userid”列設置為主鍵。
操作步驟:
(1)在操作系統中選擇“開始”→“所有程序”→“Microsoft SQL Server”→“查詢分析器”命令,打開查詢分析器。
(2)在查詢分析器的工具欄中選擇要連接的數據庫。
(3)在代碼編輯區中編寫如下代碼。
SQL語句如下:
USE 銷售管理系統 --引入數據庫
GO
CREATE TABLE mytable --創建表
(
USERID int CONSTRAINT pk_id PRIMARY KEY, --創建主鍵約束
USERNAME char (20), --數據列
USERPASS char (20), --數據列
USERPHONE char (20), --數據列
USERADDRESS varchar (50), --數據列
USERLEVEL char(2) --
sql用命令創建主鍵與外鍵
創建SQL的主鍵和外鍵約束的方法:
--在創建表時就可以對字段加上約束:
create table Student
(
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主鍵約束,還有標識列屬性(兩者構成實體完整性)
StudentName nvarchar(15) not null, --加非空約束,不加"not null" 默認為:可以為空
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外鍵約束,格式:FOREIGN KEY REFERENCES 關聯的表名(字段名)
StudentAge int DEFAULT ((0)), --加默認值約束
StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加檢查約束,格式:check (條件表達式)
)
--如果在表創建好了以后再加約束,則格式分別為:
-- 主鍵:
alter table 表名
add constraint PK_字段名--"PK"為主鍵的縮寫,字段名為要在其上創建主鍵的字段名,'PK_字段名'就為約束名
primary key (字段名) --字段名同上
--唯一約束:
alter table 表名
add constraint UQ_字段名
unique (字段名)
--外鍵約束:
alter table 表名
add constraint FK_字段名--"FK"為外鍵的縮寫
foreign key (字段名) references 關聯的表名(關聯的字段名) --注意'關聯的表名'和'關聯的字段名'
alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)
alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)
alter table 成績表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo)
ON UPDATE CASCADE ON DELETE CASCADE
級聯更新,級聯刪除,這樣在刪除主表Student時,成績表中該學生的所有成績都會刪除。
--檢查約束:
alter table 表名
add constraint CK_字段名
check (條件表達式) --條件表達式中的條件用關系運算符連接
--默認值約束:
alter table 表名
add constraint DF_字段名
default '默認值' for 字段名--其中的'默認值'為你想要默認的值,注意'for'
--刪除創建的約束:
alter table 表名
drop constraint 約束名--約束名為你前面創建的如:PK_字段這樣的約束名
--注意:如果約束是在創建表的時候創建的,則不能用命令刪除
--只能在'企業管理器'里面刪除
參考資料 : http://**news/*
希望以上的回答能夠幫到你
SQL 語句來創建表主鍵外鍵
insert into 表(列名1,列名2,。,列名n) values('值1','值2',。..,'值n');//若全部列都添加,表后面的括號可省略;
-----------
select * from 表 //查詢所有
select * form 表 where 條件 //有條件查詢
select 列名1,列名2,列名n from 表 //只查詢幾個字段
------------
create trigger 觸發器名 on 表
for insert //或者delete,update
as
{
//SQL語句
}
用sql語句如何查看主鍵名
以sqlserver2008為例。
1、登錄sql server management studio。
2、進入后,查看左邊的樹,找到要查找的表所在的庫。
3、依次點擊數據庫——系統數據庫——表——系統表——表名左邊的“+”——鍵
4、如圖所示就是主鍵名:
5、如要刪除,右鍵點擊鍵名,會有刪除按鈕,點擊刪除即可。