执行了这个存储过程之后出现了一堆错误,表创建成功了,但是索引什么的都没加上,这是怎么回事?? USE [ YXComments ] GO DECLARE @return_value int EXEC @return_value = [ dbo ] . [ procAddComment ] @ParentID = 0 , @SourceID = 1 , @NickName = N '
执行了这个存储过程之后出现了一堆错误,表创建成功了,但是索引什么的都没加上,这是怎么回事??
USE [ YXComments ] GO DECLARE @return_value int EXEC @return_value = [ dbo ] . [ procAddComment ] @ParentID = 0 , @SourceID = 1 , @NickName = N ' afasf ' , @Content = N ' sdfasdfsdf ' , @IP = N ' 127.0.0.1 ' , @City = N ' 南阳 ' , @BeFiltered = 0 , @Enable = 1 , @Key = N ' soft ' SELECT ' Return Value ' = @return_value
消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。
消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。
消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。
消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。
消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。
消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。
消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。
(1 行受影响)
消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 'Cai',表 'YXComments.dbo.comments_soft1';列不允许有 Null 值。INSERT 失败。
语句已终止。
(1 行受影响)
/* ***** Script for SelectTopNRows command from SSMS ***** */ ALTER proc [ dbo ] . [ procAddComment ] ( @ParentID int , @SourceID int , @NickName nvarchar ( 20 ), @Content nvarchar ( 300 ), @IP nvarchar ( 30 ), @City nvarchar ( 30 ), @BeFiltered bit , @Enable bit , @Key nvarchar ( 50 ) ) as begin declare @tableName nvarchar ( 80 ); declare @tableArea int ; declare @mod int ; declare @Size int ; set @Size = 100000 ; set @mod = @SourceID % @Size ; if @mod > 0 set @tableArea = Cast ( @SourceID / @Size as int ) + 1 ; else set @tableArea = Cast ( @SourceID / @Size as int ); set @tableName = ' comments_ ' + @Key + Cast ( @tableArea as nvarchar ( 10 )); if not Exists ( select * from [ CommentsTables ] where [ Key ] = @Key and [ TableName ] = @tableName ) begin declare @CreateSQL nvarchar ( MAX ); set @CreateSQL = ' Create table [dbo].[ ' + @tableName + ' ]( [ID] [int] IDENTITY(1,1) NOT NULL, [ParentID] [int] NOT NULL, [SourceID] [int] NOT NULL, [NickName] [nvarchar](20) NOT NULL, [Content] [nvarchar](300) NOT NULL, [Datetime] [datetime] NOT NULL, [IP] [nvarchar](30) NOT NULL, [City] [nvarchar](30) NOT NULL, [BeFiltered] [bit] NOT NULL, [Enable] [bit] NOT NULL, [Lou] [int] NOT NULL, [Ding] [int] NOT NULL, [Cai] [int] NOT NULL, CONSTRAINT [PK_ ' + @tableName + ' ] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ' EXEC ( @CreateSQL ); EXEC ( ' ALTER TABLE [dbo].[ ' + @tableName + ' ] ADD CONSTRAINT [DF_ ' + @tableName + ' _ParentID] DEFAULT ((0)) FOR [ParentID] GO ' ); EXEC ( ' ALTER TABLE [dbo].[ ' + @tableName + ' ] ADD CONSTRAINT [DF_ ' + @tableName + ' _Datetime] DEFAULT (getdate()) FOR [Datetime] GO ' ); EXEC ( ' ALTER TABLE [dbo].[ ' + @tableName + ' ] ADD CONSTRAINT [DF_ ' + @tableName + ' _BeFiltered] DEFAULT ((0)) FOR [BeFiltered] GO ' ); EXEC ( ' ALTER TABLE [dbo].[ ' + @tableName + ' ] ADD CONSTRAINT [DF_ ' + @tableName + ' _Enable] DEFAULT ((0)) FOR [Enable] GO ' ); EXEC ( ' ALTER TABLE [dbo].[ ' + @tableName + ' ] ADD CONSTRAINT [DF_ ' + @tableName + ' _Lou] DEFAULT ((1)) FOR [Lou] GO ' ); EXEC ( ' ALTER TABLE [dbo].[ ' + @tableName + ' ] ADD CONSTRAINT [DF_ ' + @tableName + ' _Ding] DEFAULT ((0)) FOR [Ding] GO ' ); EXEC ( ' ALTER TABLE [dbo].[ ' + @tableName + ' ] ADD CONSTRAINT [DF_ ' + @tableName + ' _Cai] DEFAULT ((0)) FOR [Cai] GO ' ); Insert Into [ CommentsTables ] ( [ Key ] , [ TableName ] ) values ( @Key , @tableName ); end set @NickName = Replace ( @NickName , '''' , '''''' ); set @Content = Replace ( @Content , '''' , '''''' ); set @IP = Replace ( @IP , '''' , '''''' ); set @City = Replace ( @City , '''' , '''''' ); Exec ( ' Insert Into dbo.[ ' + @tableName + ' ](ParentID,SourceID,NickName,Content,IP,City,BeFiltered,[Enable]) values ( ' + @ParentID + ' , ' + @SourceID + ' , ''' + @NickName + ''' , ''' + @Content + ''' , ''' + @IP + ''' , ''' + @City + ''' , ' + @BeFiltered + ' , ' + @Enable + ' ); ' ) end GO
查看更多关于SQLServer动态创建表,无法加索引默认值等,怎么搞??的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did97205