这是个创建表并增加约束的过程。
----这句判断用户创建的表guest是否存在,如果存在就删除表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[guest]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
     --删除表guest的语句
drop table [dbo].[guest]
GO
---创建表guest
CREATE TABLE [dbo].[guest] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[sex] [nvarchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
[qq] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[email] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[homepage] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[emot] [nvarchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[caption] [nvarchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[content] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[postdate] [datetime] NULL ,
[standby] [nvarchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[reply] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[redate] [datetime] NULL ,
[face] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
--修改表,分别为postdate 和redate 增加默认值约束
ALTER TABLE [dbo].[guest] WITH NOCHECK ADD 
CONSTRAINT [DF_guest_postdate] DEFAULT (getdate()) FOR [postdate],
CONSTRAINT [DF_guest_redate] DEFAULT (getdate()) FOR [redate]
GO

解决方案 »

  1.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[guest]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[guest]
    GO--------判断库中是否存在该表,如果存在删除它,避免重复。
    CREATE TABLE [dbo].[guest] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [sex] [nvarchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
    [qq] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [email] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
    [homepage] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [emot] [nvarchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
    [caption] [nvarchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
    [content] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
    [postdate] [datetime] NULL ,
    [standby] [nvarchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
    [reply] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
    [redate] [datetime] NULL ,
    [face] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    ---建立表并第一属性和字段长度等
    ALTER TABLE [dbo].[guest] WITH NOCHECK ADD 
    CONSTRAINT [DF_guest_postdate] DEFAULT (getdate()) FOR [postdate],
    CONSTRAINT [DF_guest_redate] DEFAULT (getdate()) FOR [redate]---增加check约束,
      

  2.   

    ---给上面建的表加默认值
    ALTER TABLE [dbo].[guest] WITH NOCHECK ADD 
    CONSTRAINT [DF_guest_postdate] DEFAULT (getdate()) FOR [postdate],--这里是给postdate列加默认值是系统时间
    CONSTRAINT [DF_guest_redate] DEFAULT (getdate()) FOR [redate]--这里是给redate列加默认值是系统时间
    GO
      

  3.   

    你用企业管理器随便建个表,再在企业管理器-->右键你的库-->所有任务-->生成SQL脚本-->按象导做-->可以得到SQL上面的脚本
      

  4.   

    若表[dbo].[guest]存在:删除[dbo].[guest];
    建立表[dbo].[guest]
    修改表[dbo].[guest]
    增加约束 [postdate]默认值为当前系统日期和时间,
    增加约束 [redate]默认值为当前系统日期和时间
      

  5.   

    IDENTITY (1, 1) NOT NULL COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_guest_postdate] DEFAULT (getdate()) FOR [postdate],
    CONSTRAINT [DF_guest_redate] DEFAULT (getdate()) FOR [redate]]能详细介绍以下这三句是什么意思吗?我有一点sql的基础,但是还是不怎么看的懂。
      

  6.   

    IDENTITY (1, 1) NOT NULL -------------
    IDENTITY(属性)
    在表中创建一个标识列。该属性与 CREATE TABLE 及 ALTER TABLE Transact-SQL 语句一起使用。说明  IDENTITY 属性与 SQL-DMO Identity 属性不同,后者表现列的行标识属性。 
    语法
    IDENTITY [ ( seed , increment ) ]参数
    seed装载到表中的第一个行所使用的值。increment增量值,该值被添加到前一个已装载的行的标识值上。必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值 (1,1)。注释
    如果在经常进行删除操作的表中存在着标识列,那么在标识值之间可能会产生差距。如果这构成了问题,那么请不要使用 IDENTITY 属性。但是,为了确保未产生差距,或者为了弥补现有的差距,在用 SET IDENTITY_INSERT ON 显式地输入标识值之前,请先对现有的标识值进行计算。如果重新使用已删除的标识值,那么请使用示例 B 中的示例代码进行检查,以获得下一个可用的标识值。请用您的表名、标识列数据类型以及(该数据类型的)最大可允许值的数值 –1 替换 tablename、column_type 和 max(column_type) – 1。使用 DBCC CHECKIDENT 检查当前的标识值,并将其与标识列中的最大值进行比较。 当将 IDENTITY 属性与 CREATE TABLE 一起使用时,Microsoft® SQL Server™ 使用 CREATE TABLE 的 NOT FOR REPLICATION 选项替代标识列的自动增加。通常,SQL Server 给插入表中的每个新行指派一个值,该值比前面的最高值要大出某些增量。但是,如果新行是由另一个数据源复制过来的,那么标识值必须保持与其在数据源中完全相同。示例
    A. 将 IDENTITY 属性与 CREATE TABLE 一起使用
    下面的示例创建一个新表,该表将 IDENTITY 属性用于获得自动增加的标识号。USE pubs
    IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
          WHERE TABLE_NAME = 'new_employees')
       DROP TABLE new_employees
    GO
    CREATE TABLE new_employees
    (
     id_num int IDENTITY(1,1),
     fname varchar (20),
     minit char(1),
     lname varchar(30)
    )INSERT new_employees
       (fname, minit, lname)
    VALUES
       ('Karin', 'F', 'Josephs')INSERT new_employees
       (fname, minit, lname)
    VALUES
       ('Pirkko', 'O', 'Koskitalo')
      

  7.   

    COLLATE Chinese_PRC_CI_AS NULL 
    ---------------------------
    collation_name指定列的排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。collation_name 仅适用于数据类型为 char、varchar、text、nchar、nvarchar 及 ntext 的列。如果没有指定该参数,那么如果列的数据类型是用户定义的,则该列的排序规则就是用户定义数据类型的排序规则,否则就是数据库的默认排序规则。
      

  8.   

    CONSTRAINT [DF_guest_postdate] DEFAULT (getdate()) FOR [postdate],
    CONSTRAINT [DF_guest_redate] DEFAULT (getdate()) FOR [redate]]
    -------------------------------------------------------给上面建的表加默认值
    ALTER TABLE [dbo].[guest] WITH NOCHECK ADD 
    CONSTRAINT [DF_guest_postdate] DEFAULT (getdate()) FOR [postdate],--这里是给postdate列加默认值是系统时间
    CONSTRAINT [DF_guest_redate] DEFAULT (getdate()) FOR [redate]--这里是给redate列加默认值是系统时间
    GO
      

  9.   

    在系统表sysobjects中查询,若用户表guest存在:删除用户表guest,否则再建表guest会产生错误。建立表guest,并指定列的排序规则修改表guest
    增加约束 postdate,默认值为当前系统日期和时间,
    增加约束 redate,默认值为当前系统日期和时间
      

  10.   

    谢谢上面的各位。好象导出的脚本和一般的sql语句有一点点区别是吗?能解释一下吗?