FOK!forum / Digital Corner / Hoe verwijder ik een parameter?
JelleFOKvrijdag 4 juni 2010 @ 16:21
Hallo!
Ik gebruik MSSQL als database.
In een Stored Procedure zit:
@account
@pw
@cash
@email

Hoe kan ik de @email verwijderen aangezien die in de weg zit?

Bedankt.
genaktvrijdag 4 juni 2010 @ 16:22
JelleFOKvrijdag 4 juni 2010 @ 16:24
quote:
Op vrijdag 4 juni 2010 16:22 schreef genakt het volgende:
[ afbeelding ]
Werkt niet e.e
Ericrvrijdag 4 juni 2010 @ 16:26
Stored Procedure aanpassen en de variabele (plus eventuele verwijzingen naar de variabele) verwijderen.
JelleFOKvrijdag 4 juni 2010 @ 16:28
Hoe pas ik deze aan?
BdRvrijdag 4 juni 2010 @ 16:31
1) in Server Management Studio de database open klappen
2) programmability open klappen
3) stored procedures open klappen
4) rechtermuisknop op de procedure
5) en dan uit het popup menu "Edit"

Er verschijnt dan een ALTER PROCEDURE script die je kan aanpassen, maar goed...

Als je uberhaubt niet weet hoe je een stored procedure moet aanpassen, kan je er misschien beter iemand bijhalen die er verstand van heeft..
Ericrvrijdag 4 juni 2010 @ 16:33
Niet vergeten om de procedure te runnen als je deze hebt aangepast, maar goed inderdaad beter laten aanpassen door iemand anders als je niet weet hoe je een procedure moet aanpassen. Voor je het weet werkt de hele stored procedure niet meer.
JelleFOKvrijdag 4 juni 2010 @ 16:34
Daarom dacht ik, ik haal even het beste forum erbij :)
Ik was er net achter gekomen hoe je hem moest editen.
De procedure luid:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
USE [ACCOUNT_DBF]
GO
/****** Object:  StoredProcedure [dbo].[usp_CreateNewAccount]    Script Date: 06/04/2010 16:31:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[usp_CreateNewAccount]
@account varchar(32),
@pw varchar(32),
@cash int = 0,
@email varchar(100) = ''
as
set nocount on
set xact_abort on

if not exists (select * from ACCOUNT_TBL where account = @account)
begin

begin tran
INSERT ACCOUNT_TBL(account,password,isuse,member,id_no1,id_no2,realname,cash)
VALUES(@account, @pw, 'T', 'A', '', '', '', @cash)
INSERT ACCOUNT_TBL_DETAIL(account,gamecode,tester,m_chLoginAuthority,regdate,BlockTime,EndTime,WebTime,isuse,secession,email)
VALUES(@account,'A000','2','F',GETDATE(),CONVERT(CHAR(8),GETDATE()-1,112),CONVERT(CHAR(8),DATEADD(year,10,GETDATE()), 112),CONVERT(CHAR(8),GETDATE()-1,112),'T',NULL, @email)
insert AccountPlay (Account, PlayDate)
select @account, convert(int, convert(char(8), getdate(), 112))

if @@error <> 0
begin
rollback tran
select -1
end
else
begin
commit tran
select 1
end
end
else
begin
select 0
end


Om alles van EMAIL weg te halen, wat zal ik verwijderen?
Ik wil niet alles verpesten ;O
BdRvrijdag 4 juni 2010 @ 16:35
quote:
Op vrijdag 4 juni 2010 16:33 schreef Ericr het volgende:
Voor je het weet werkt de hele stored procedure niet meer.
Dat, of de procedure wordt ook nog op andere plekken gebruikt, bijv. in views of in andere functions, die dan niet meer werken..
Antalvrijdag 4 juni 2010 @ 16:35
ctrl-a
shift +delete

save

klaar..
BdRvrijdag 4 juni 2010 @ 16:41
Regel 12 helemaal verwijderen (en alleen de comma op regel 11) en dan in regel 24 @email vervangen door NULL en dan F5

Waarom wil je dit eigenlijk verwijderen?
goldfinger1963vrijdag 4 juni 2010 @ 16:42
====>>> DIG
JelleFOKvrijdag 4 juni 2010 @ 16:51
quote:
Op vrijdag 4 juni 2010 16:41 schreef BdR het volgende:
Regel 12 helemaal verwijderen (en alleen de comma op regel 11) en dan in regel 24 @email vervangen door NULL en dan F5

Waarom wil je dit eigenlijk verwijderen?
Heel erg bedankt!
Voor mijn website gebruik ik een register script en dat werkt nog niet helemaal.
Dat is gelukt, nu is er nog een klein (hoop ik) probleempje
De tabel ACCOUNT_TBL_DETAIL vereist de kolom Email
Het script van account_tbl_detail is
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
USE [ACCOUNT_DBF]
GO
/****** Object:  Table [dbo].[ACCOUNT_TBL_DETAIL]    Script Date: 06/04/2010 16:47:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ACCOUNT_TBL_DETAIL](
   [account] [varchar](32) NOT NULL,
   [gamecode] [char](4) NOT NULL,
   [tester] [char](1) NOT NULL,
   [m_chLoginAuthority] [char](1) NULL,
   [regdate] [datetime] NOT NULL,
   [BlockTime] [char](8) NULL,
   [EndTime] [char](8) NULL,
   [WebTime] [char](8) NULL,
   [isuse] [char](1) NULL,
   [secession] [datetime] NULL,
   [email] [varchar](100) NOT NULL CONSTRAINT [DF_ACCOUNT_DETAIL_email]  DEFAULT ('')
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF


Zodra ik [email] [varchar](100) NOT NULL CONSTRAINT [DF_ACCOUNT_DETAIL_email] DEFAULT ('')
Verwijder (+die komma van de regel daarboven), krijg ik deze error:
1
2
Msg 2714, Level 16, State 6, Line 1
There is already an object named 'ACCOUNT_TBL_DETAIL' in the database.


Kan iemand mij nog een keer helpen?:)
Muridaevrijdag 4 juni 2010 @ 16:54
drop database
BdRvrijdag 4 juni 2010 @ 17:41
Je probeert met CREATE TABLE de tabel ACCOUNT_TBL_DETAIL aan te maken maar die bestaat al, vandaar die foutmelding "object already exists".

Je wilt alleen een kolom toevoegen, dus zoiets (ik weet alleen niet of je die CONSTRAINT ook zo kan toevoegen)
1
2
3
4
ALTER TABLE [dbo].[ACCOUNT_TBL_DETAIL]
ADD [EMAIL] VARCHAR(100)
CONSTRAINT [DF_ACCOUNT_DETAIL_email]
DEFAULT '' NOT NULL


Je kan ditzelfde ook zo doen in management studio, rechtermuisknop op de tabel en dan design en dan rechtermuis knop "insert column" en dan nog de naam en datatype instellen.
Klonkvrijdag 4 juni 2010 @ 18:27
schopje naar DIG