Avatar billede orca Nybegynder
06. maj 2002 - 15:55 Der er 22 kommentarer og
1 løsning

Point til benny.tordrup

http://www.eksperten.dk/spm/206646

Tak for svar.
Avatar billede bennytordrup Nybegynder
06. maj 2002 - 15:57 #1
Takker
Avatar billede orca Nybegynder
06. maj 2002 - 16:08 #2
Selv tak :)
Avatar billede orca Nybegynder
06. maj 2002 - 16:27 #3
Tjae, nu har du jo hjulpet mig flere, gange, så hvorfor ikke spørge igen. Jeg skal selvfølgelig nok give point igen :).

Jeg har følgende kode:

CREATE TABLE [dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

Jeg vil gerne have koden til at se således ud:

CREATE TABLE @DBName.[dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

Altså hvor den nyligt oprettede DB kommer ind lige efter CREATE TABLE. Hvordan kan dette gøres (og det virker da ikke?)

Håber du kan hjælpe :).

Mvh Mark
Avatar billede ocp Nybegynder
06. maj 2002 - 16:56 #4
Det kan jeg da også :-)

Prøv at sætte følgende ind i din kode:

Execute('CREATE TABLE ' + @DBName + '.[dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')
Avatar billede orca Nybegynder
06. maj 2002 - 16:58 #5
Hehe, tak for... forsøget :(.

Først siger den @DBName must be declared. Efter "DECLARE @DBName" siger den incorrect syntax near the keyword "exec" - som formentligt referrerer til den nye kode?
Avatar billede ocp Nybegynder
06. maj 2002 - 17:01 #6
Nej, du skal erklære @dbname sådan her:

Declare @DBName varchar(255)

set @dbname = 'MinNyeDatabase'

Execute('CREATE TABLE ' + @DBName + '.[dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')
Avatar billede orca Nybegynder
06. maj 2002 - 17:03 #7
jeg kan ikke declare min var på den måde, så får jeg fejl. Måske fordi @DBName bliver medsendt som param: "CREATE procedure sp_CreateSiteserverDB ( @DBName sysname )" Af samme grund kan jeg ikke sige Set @DBname = 'etnavn' da navnet kommer fra den medsendte variabel.
Avatar billede bennytordrup Nybegynder
06. maj 2002 - 19:51 #8
create procedure CreateTableInDatabase
(
    @DBName sysname
)
as
    exec ('create table [' + @DBName + '].[dbo].[SomeNewTable] (    TestInt        int, TestText    nvarchar(20) )')
Avatar billede ocp Nybegynder
06. maj 2002 - 21:38 #9
Hmmm... måske skulle du prøve med cast(@dbname as varchar) - sql server har det med at være lidt "følsom" overfor ikke-varchar værdier.
Avatar billede orca Nybegynder
06. maj 2002 - 21:40 #10
Jeg prøver lige begge jeres forslag på onsdag når jeg kommer på arb igen, skal nok give point :)
Avatar billede bennytordrup Nybegynder
06. maj 2002 - 22:16 #11
Min er et klip af en procedure, som virkede på min lokale MSDE 2000
Avatar billede orca Nybegynder
08. maj 2002 - 16:09 #12
exec ('create table [' + @DBName + '}.[dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO')

Incorrect syntax near the keyword "exec". Er det mig der har lavet en fejl? (det er det sikkert :))
Avatar billede bennytordrup Nybegynder
08. maj 2002 - 16:10 #13
Yep. Du har skrevet } i stedet for ] umiddelbart før .[dbo]
Avatar billede orca Nybegynder
08. maj 2002 - 16:11 #14
exec ('create table [' + @DBName + '].[dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO')

ups, det er sådan den ser ud :)
Avatar billede bennytordrup Nybegynder
08. maj 2002 - 16:12 #15
drop den der GO
Avatar billede orca Nybegynder
08. maj 2002 - 16:15 #16
Den siger stadig incorrect syntax... Skal jeg evt smide hele koden ud? Jeg vil efterhånden godt give 60+ point når jeg får det op at køre :)
Avatar billede bennytordrup Nybegynder
08. maj 2002 - 16:17 #17
ja
Avatar billede orca Nybegynder
08. maj 2002 - 16:22 #18
CREATE procedure sp_CreateSiteserverDB ( @DBName sysname )
as

DECLARE @DBName

exec ('use [' + @DBName + ']')
GO

exec sp_addsrvrolemember N'SiteserverAdmin', sysadmin
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', sysadmin
GO

exec sp_addsrvrolemember N'SiteserverAdmin', securityadmin
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', securityadmin
GO

exec sp_addsrvrolemember N'SiteserverAdmin', serveradmin
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', serveradmin
GO

exec sp_addsrvrolemember N'SiteserverAdmin', setupadmin
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', setupadmin
GO

exec sp_addsrvrolemember N'SiteserverAdmin', processadmin
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', processadmin
GO

exec sp_addsrvrolemember N'SiteserverAdmin', diskadmin
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', diskadmin
GO

exec sp_addsrvrolemember N'SiteserverAdmin', dbcreator
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', dbcreator
GO

exec sp_addsrvrolemember N'SiteserverAdmin', bulkadmin
GO

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', bulkadmin
GO

if not exists (select * from dbo.sysusers where name = N'DBAdmins' and uid < 16382)
    EXEC sp_grantdbaccess N'WEBDANMARK\DBAdmins', N'DBAdmins'
GO

if not exists (select * from dbo.sysusers where name = N'SiteserverAdmin' and uid < 16382)
    EXEC sp_grantdbaccess N'SiteserverAdmin', N'SiteserverAdmin'
GO

exec sp_addrolemember N'db_owner', N'SiteserverAdmin'
GO

exec ('create table [' + @DBName + '].[dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')

CREATE TABLE [dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblForum] (
    [ForumID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblForumTopics] (
    [TopicID] [int] IDENTITY (1, 1) NOT NULL ,
    [ForumID] [int] NOT NULL ,
    [Position] [int] NOT NULL ,
    [UserID] [int] NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Subject] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblNews] (
    [NewsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsGroupID] [int] NOT NULL ,
    [Sort] [int] NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Heading] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Writer] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Details] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Published] [datetime] NULL ,
    [Created] [datetime] NOT NULL ,
    [Publism] [bit] NOT NULL ,
    [StartDate] [datetime] NULL ,
    [EndDate] [datetime] NULL ,
    [RemindDate] [datetime] NULL ,
    [Expires] [bit] NOT NULL ,
    [Active] [bit] NOT NULL ,
    [Picture1Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture1Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link1Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link1Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link2Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link2Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link3Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link3Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblNewsGroups] (
    [NewsGroupID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [TextDetails] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [TextLinks] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [TextBack] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblNewsLetterRecipients] (
    [NewsLetterRecipientsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsLetterID] [int] NOT NULL ,
    [UserID] [int] NOT NULL ,
    [IsUserGroup] [bit] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblNewsletter] (
    [NewsletterID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [SenderName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [SenderEmail] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Priority] [tinyint] NULL ,
    [Subject] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [BodyStart] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [BodyEnd] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Send] [datetime] NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblNewsletterNews] (
    [NewsletterNewsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsletterID] [int] NOT NULL ,
    [NewsID] [int] NOT NULL ,
    [Sort] [int] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblNewsletterNewsTemp] (
    [NewsLetterNewsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsID] [int] NOT NULL ,
    [Sort] [int] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblPageGroups] (
    [PageGroupID] [int] IDENTITY (1, 1) NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblPages] (
    [EditorID] [int] IDENTITY (1, 1) NOT NULL ,
    [Heading] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL ,
    [SiteID] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSites] (
    [SiteID] [int] IDENTITY (1, 1) NOT NULL ,
    [Position] [int] NOT NULL ,
    [ModuleID] [int] NULL ,
    [Sort] [int] NOT NULL ,
    [Link] [bit] NOT NULL ,
    [Publism] [bit] NOT NULL ,
    [StartDate] [datetime] NULL ,
    [EndDate] [datetime] NULL ,
    [RemindDate] [datetime] NULL ,
    [Expires] [bit] NOT NULL ,
    [Active] [bit] NOT NULL ,
    [AccessType] [tinyint] NULL ,
    [Picture1Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture1Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture2Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture2Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture3Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture3Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuPath] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuOverPath] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuClickPath] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuText] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSiteAccessUsers] (
    [AccessUserID] [int] IDENTITY (1, 1) NOT NULL ,
    [SiteID] [int] NOT NULL ,
    [UserID] [int] NOT NULL ,
    [IsUserGroup] [bit] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSiteLinks] (
    [LinkID] [int] IDENTITY (1, 1) NOT NULL ,
    [SiteID] [int] NOT NULL ,
    [Linktype] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Link] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Target] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Download] [bit] NOT NULL ,
    [WinHeight] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [WinWidth] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [WinResize] [bit] NOT NULL ,
    [WinScroll] [bit] NOT NULL ,
    [WinMenu] [bit] NOT NULL ,
    [WinStatus] [bit] NOT NULL ,
    [WinCenter] [bit] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSiteSearch] (
    [SearchID] [int] IDENTITY (1, 1) NOT NULL ,
    [SiteID] [int] NOT NULL ,
    [SearchWord] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSysDatatypes] (
    [DatatypeID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [RealName] [char] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Length] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Type] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Description] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSysFileTypes] (
    [TypeID] [int] IDENTITY (1, 1) NOT NULL ,
    [Type] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Tekst] [nvarchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Program] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Beskrivelse] [nvarchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Icon] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSysOrderBy] (
    [OrderByID] [int] IDENTITY (1, 1) NOT NULL ,
    [Area] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [OrderDESC] [bit] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblSysReplacements] (
    [ReplacementID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Way] [bit] NOT NULL ,
    [Find] [nvarchar] (300) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Replace] [nvarchar] (300) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Active] [bit] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblUserGroupRelations] (
    [RelationID] [int] IDENTITY (1, 1) NOT NULL ,
    [UserGroupID] [int] NOT NULL ,
    [UserID] [int] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblUserGroupView] (
    [ViewID] [int] IDENTITY (1, 1) NOT NULL ,
    [UserGroupID] [int] NOT NULL ,
    [Field] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblUserGroups] (
    [UserGroupID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [InputTable] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblUsers] (
    [UserID] [int] IDENTITY (1, 1) NOT NULL ,
    [Username] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Password] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Email] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [AccountStatus] [tinyint] NOT NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tblUsers_Brugere] (
    [UserID] [int] NOT NULL ,
    [Fornavn] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Efternavn] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Avatar billede bennytordrup Nybegynder
08. maj 2002 - 16:24 #19
Jeg er ved at gå herfra. Jeg kan kigge på det i aften, hvis det er OK.
Avatar billede orca Nybegynder
08. maj 2002 - 16:27 #20
Det er helt i orden. Det haster ikke... Det er også en ordentligt klump at kigge på ;)
Avatar billede bennytordrup Nybegynder
08. maj 2002 - 21:52 #21
Du skal fjerne den declare @DBName, du har med. @DBName er jo navnet på den parameter, du overfører til proceduren.
Avatar billede bennytordrup Nybegynder
08. maj 2002 - 21:56 #22
Denne virker (jeg har dog ikke tested den del med exec af diverse stored procedures).

create procedure sp_CreateSiteserverDB ( @DBName sysname )
as

exec ('create database [' + @DBName + ']')

exec ('use [' + @DBName + ']')

exec sp_addsrvrolemember N'SiteserverAdmin', sysadmin

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', sysadmin

exec sp_addsrvrolemember N'SiteserverAdmin', securityadmin

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', securityadmin

exec sp_addsrvrolemember N'SiteserverAdmin', serveradmin

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', serveradmin

exec sp_addsrvrolemember N'SiteserverAdmin', setupadmin

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', setupadmin

exec sp_addsrvrolemember N'SiteserverAdmin', processadmin

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', processadmin

exec sp_addsrvrolemember N'SiteserverAdmin', diskadmin

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', diskadmin

exec sp_addsrvrolemember N'SiteserverAdmin', dbcreator

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', dbcreator

exec sp_addsrvrolemember N'SiteserverAdmin', bulkadmin

exec sp_addsrvrolemember N'WEBDANMARK\DBAdmins', bulkadmin

if not exists (select * from dbo.sysusers where name = N'DBAdmins' and uid < 16382)
    EXEC sp_grantdbaccess N'WEBDANMARK\DBAdmins', N'DBAdmins'

if not exists (select * from dbo.sysusers where name = N'SiteserverAdmin' and uid < 16382)
    EXEC sp_grantdbaccess N'SiteserverAdmin', N'SiteserverAdmin'

exec sp_addrolemember N'db_owner', N'SiteserverAdmin'

exec ('create table [' + @DBName + '].[dbo].[tblCustomerModules] (
    [CustomerModuleID] [int] IDENTITY (1, 1) NOT NULL ,
    [ModuleID] [int] NOT NULL ,
    [OutputFile] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblForum] (
    [ForumID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblForumTopics] (
    [TopicID] [int] IDENTITY (1, 1) NOT NULL ,
    [ForumID] [int] NOT NULL ,
    [Position] [int] NOT NULL ,
    [UserID] [int] NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Subject] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblNews] (
    [NewsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsGroupID] [int] NOT NULL ,
    [Sort] [int] NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Heading] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Writer] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Details] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Published] [datetime] NULL ,
    [Created] [datetime] NOT NULL ,
    [Publism] [bit] NOT NULL ,
    [StartDate] [datetime] NULL ,
    [EndDate] [datetime] NULL ,
    [RemindDate] [datetime] NULL ,
    [Expires] [bit] NOT NULL ,
    [Active] [bit] NOT NULL ,
    [Picture1Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture1Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link1Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link1Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link2Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link2Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link3Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Link3Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblNewsGroups] (
    [NewsGroupID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [TextDetails] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [TextLinks] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [TextBack] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblNewsLetterRecipients] (
    [NewsLetterRecipientsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsLetterID] [int] NOT NULL ,
    [UserID] [int] NOT NULL ,
    [IsUserGroup] [bit] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblNewsletter] (
    [NewsletterID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [SenderName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [SenderEmail] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Priority] [tinyint] NULL ,
    [Subject] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [BodyStart] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [BodyEnd] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Send] [datetime] NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblNewsletterNews] (
    [NewsletterNewsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsletterID] [int] NOT NULL ,
    [NewsID] [int] NOT NULL ,
    [Sort] [int] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblNewsletterNewsTemp] (
    [NewsLetterNewsID] [int] IDENTITY (1, 1) NOT NULL ,
    [NewsID] [int] NOT NULL ,
    [Sort] [int] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblPageGroups] (
    [PageGroupID] [int] IDENTITY (1, 1) NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblPages] (
    [EditorID] [int] IDENTITY (1, 1) NOT NULL ,
    [Heading] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL ,
    [SiteID] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSites] (
    [SiteID] [int] IDENTITY (1, 1) NOT NULL ,
    [Position] [int] NOT NULL ,
    [ModuleID] [int] NULL ,
    [Sort] [int] NOT NULL ,
    [Link] [bit] NOT NULL ,
    [Publism] [bit] NOT NULL ,
    [StartDate] [datetime] NULL ,
    [EndDate] [datetime] NULL ,
    [RemindDate] [datetime] NULL ,
    [Expires] [bit] NOT NULL ,
    [Active] [bit] NOT NULL ,
    [AccessType] [tinyint] NULL ,
    [Picture1Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture1Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture2Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture2Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture3Path] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Picture3Text] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuPath] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuOverPath] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuClickPath] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [PictureMenuText] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSiteAccessUsers] (
    [AccessUserID] [int] IDENTITY (1, 1) NOT NULL ,
    [SiteID] [int] NOT NULL ,
    [UserID] [int] NOT NULL ,
    [IsUserGroup] [bit] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSiteLinks] (
    [LinkID] [int] IDENTITY (1, 1) NOT NULL ,
    [SiteID] [int] NOT NULL ,
    [Linktype] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Link] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Target] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Download] [bit] NOT NULL ,
    [WinHeight] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [WinWidth] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [WinResize] [bit] NOT NULL ,
    [WinScroll] [bit] NOT NULL ,
    [WinMenu] [bit] NOT NULL ,
    [WinStatus] [bit] NOT NULL ,
    [WinCenter] [bit] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSiteSearch] (
    [SearchID] [int] IDENTITY (1, 1) NOT NULL ,
    [SiteID] [int] NOT NULL ,
    [SearchWord] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSysDatatypes] (
    [DatatypeID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [RealName] [char] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Length] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Type] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Description] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSysFileTypes] (
    [TypeID] [int] IDENTITY (1, 1) NOT NULL ,
    [Type] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Tekst] [nvarchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Program] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Beskrivelse] [nvarchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Icon] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSysOrderBy] (
    [OrderByID] [int] IDENTITY (1, 1) NOT NULL ,
    [Area] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [OrderDESC] [bit] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblSysReplacements] (
    [ReplacementID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Way] [bit] NOT NULL ,
    [Find] [nvarchar] (300) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Replace] [nvarchar] (300) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Active] [bit] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblUserGroupRelations] (
    [RelationID] [int] IDENTITY (1, 1) NOT NULL ,
    [UserGroupID] [int] NOT NULL ,
    [UserID] [int] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblUserGroupView] (
    [ViewID] [int] IDENTITY (1, 1) NOT NULL ,
    [UserGroupID] [int] NOT NULL ,
    [Field] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblUserGroups] (
    [UserGroupID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [InputTable] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblUsers] (
    [UserID] [int] IDENTITY (1, 1) NOT NULL ,
    [Username] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Password] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Description] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Email] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [AccountStatus] [tinyint] NOT NULL ,
    [Created] [datetime] NOT NULL
) ON [PRIMARY]')

exec ('CREATE TABLE [' + @DBName + '].[dbo].[tblUsers_Brugere] (
    [UserID] [int] NOT NULL ,
    [Fornavn] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Efternavn] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]')
Avatar billede orca Nybegynder
09. maj 2002 - 14:25 #23
Satme ja! Så virker den :D

http://www.eksperten.dk/spm/209222.

Mvh Mark
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester