UpdateLogDB.sql 6.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*---------------------------创建 logdb----------------------------------*/
  2. IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'?Catalog?')
  3. BEGIN
  4. --判断文件是否存在
  5. declare @retval int, @ret int
  6. execute @retval=master.dbo.xp_fileexist N'?Catalogpath?\?Catalog?.mdf', @ret output
  7. if @ret=0
  8. begin
  9. --不存在,就创建
  10. PRINT '数据库[?Catalog?]不存在,启动创建过程'
  11. CREATE DATABASE [?Catalog?] ON PRIMARY
  12. (
  13. NAME = N'?Catalog?',
  14. FILENAME = N'?Catalogpath?\?Catalog?.mdf',
  15. SIZE = 5MB ,
  16. MAXSIZE = UNLIMITED,
  17. FILEGROWTH = 1024KB
  18. )
  19. LOG ON
  20. (
  21. NAME = N'?Catalog?_log',
  22. FILENAME = N'?Catalogpath?\?Catalog?_log.ldf',
  23. SIZE = 3MB ,
  24. MAXSIZE = 10GB ,
  25. FILEGROWTH = 10%
  26. )
  27. end
  28. else
  29. begin
  30. --存在,附加到数据库里
  31. EXEC sp_attach_db
  32. @dbname = N'?Catalog?',
  33. @filename1 = N'?Catalogpath?\?Catalog?.mdf',
  34. @filename2 = N'?Catalogpath?\?Catalog?_log.ldf'
  35. end
  36. END
  37. ELSE
  38. PRINT '数据库[?Catalog?]已存在'
  39. GO
  40. IF EXISTS (SELECT name FROM sys.databases WHERE name = N'?Catalog?')
  41. BEGIN
  42. EXEC dbo.sp_dbcmptlevel @dbname=N'?Catalog?', @new_cmptlevel=90
  43. IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
  44. begin
  45. EXEC [?Catalog?].[dbo].[sp_fulltext_database] @action = 'enable'
  46. end
  47. END
  48. use [?Catalog?]
  49. declare @tablename varchar(16)
  50. SELECT @tablename=DATEPART(year, GETDATE())
  51. print @tablename
  52. --判断表是否存在
  53. if not exists(select * from dbo.sysobjects where id = object_id(N'@tablename') AND type in (N'U'))
  54. begin
  55. print '11111'
  56. CREATE TABLE [dbo].[@tablename](
  57. [LogID] [int] IDENTITY(1,1) NOT NULL, --日志ID
  58. [Account] [varchar](50) NOT NULL, --帐户
  59. [UserName] [nvarchar](24) NULL, --用户名
  60. [LogDate] [varchar](50) NOT NULL, --记录时期
  61. [OptType] [nvarchar](50) NOT NULL, --操作类型
  62. [SNNo] [varchar](1024) NULL, --S/N硬件编号加密后的信息
  63. [LogDesc] [nvarchar](max) NOT NULL, --记录内容
  64. CONSTRAINT [PK_@tablename] PRIMARY KEY CLUSTERED
  65. (
  66. [LogID] ASC
  67. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  68. ) ON [PRIMARY]
  69. end
  70. else
  71. begin
  72. print '22222'
  73. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id(N'@tablename') AND name='LogID') -- 判断字段是否存在;
  74. ALTER TABLE [dbo].[@tablename] ADD [LogID] [int] IDENTITY(1,1) NOT NULL
  75. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id(N'@tablename') AND name='Account') -- 判断字段是否存在;
  76. ALTER TABLE [dbo].[@tablename] ADD [Account] [varchar](50) NOT NULL
  77. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id(N'@tablename') AND name='UserName') -- 判断字段是否存在;
  78. ALTER TABLE [dbo].[@tablename] ADD [UserName] [nvarchar](24) NULL
  79. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id(N'@tablename') AND name='LogDate') -- 判断字段是否存在;
  80. ALTER TABLE [dbo].[@tablename] ADD [LogDate] [varchar](50) NOT NULL
  81. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id(N'@tablename') AND name='OptType') -- 判断字段是否存在;
  82. ALTER TABLE [dbo].[@tablename] ADD [OptType] [nvarchar](50) NOT NULL
  83. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id(N'@tablename') AND name='SNNo') -- 判断字段是否存在;
  84. ALTER TABLE [dbo].[@tablename] ADD [SNNo] [varchar](1024) NULL
  85. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id(N'@tablename') AND name='LogDesc') -- 判断字段是否存在;
  86. ALTER TABLE [dbo].[@tablename] ADD [LogDesc] [nvarchar](max) NOT NULL
  87. end