I Fixed Server Roles sono simili al concetto di gruppi in NT. Sono dei permessi a compiere certe operazioni su SQL Server, sono fissi e non possono essere cambiati (ma ne possiamo aggiungere di personalizzati). Solo una login con i permessi di sa può assegnare un Fixed Server Roles.

Ecco l’elenco dei rolename: sysadmin, securityadmin, serveradmin, setupadmin, processadmin, diskadmin dbcreator.

— Aggiungo la login ‘mario’ al ruolo di ‘sysadmin’

EXEC sp_addsrvrolemember @loginame = ‘mario’, @rolename = ‘sysadmin’

— Tolgo la login ‘mario’ dal ruolo di ‘sysadmin’

EXEC sp_dropsrvrolemember @loginame = ‘mario’, @rolename = ‘sysadmin’

Connettersi ad un Database quando non si hanno i diritti amministrativi

per operare su ODBC e’ piu’ semplice di quanto si pensi.

Utilizzando la procedura DSN-less, e’ possibile collegarsi a database residenti nella nostra virtual root.

objConn.ConnectionString = “DBQ=C:\Webcondivisa\Nomedatabase.mdb;DRIVER={MS Access (*.mdb)}”

Un constraint serve per controllare i valori che vengono inseriti all’interno di una colonna di una tabella.

USE Northwind –> Usa il database Northwind

ALTER TABLE Customers –> Altera la tabella clienti

ADD CONSTRAINT ckCustomersLen –> aggiungi un constraint dal nome ‘ckCustomersLen’

CHECK (LEN(CustomerID) <= 5) –> assicurati che la colonna ‘Customer ID’

–> contenga valori minori o uguali a 5

/*

Per eliminare un constraint già esistente in una tabella

USE Northwind –> Usa il database Northwind

ALTER TABLE Customers –> Altera la tabella clienti

DROP CONSTRAINT ckCustomersLen

*/

Per aggiungere un constraint IDENTITY ad una colonna già esistente devo prima eliminarla e poi ricrearla.

Attenzione perché tutti i dati presenti nella colonna saranno persi!

Una colonna con IDENTITY contiene numeri interi creati automaticamente da SQL Server ogni volta che si aggiunge un record a quella tabella.

I valori nella colonna IDENTITY sono ovviamente UNICI.

Per ogni tabella può esistere una sola colonna IDENTITY.

USE pubs –> Utilizzo il database pubs

GO

/* se esiste all’interno del database l’oggetto ‘test’ ed è una TABELLA */

IF OBJECTPROPERTY ( object_id(‘test’),’ISTABLE’) = 1

DROP TABLE test /* allora lo elimino */

GO

CREATE TABLE test (id# int NOT NULL, tipo1 varchar(255))

GO

ALTER TABLE test –> altero la tabella ‘test’

DROP COLUMN id# –> elimino la colonna ID

GO –> Eseguo lo script precedente e mi preparo ad eseguire un nuovo batch

ALTER TABLE test –>altero la tabella libri per aggiungere il nuovo campo ID

ADD id# INT IDENTITY NOT NULL –> aggiungo un constraint IDENTITY alla colonna ID

Per mezzo di questo script:

<html>

<head>

<title>Ordinare i record casualmente</title>

</head>

<body bgcolor=”#ffffff”>

<%

‘Connessione al database

Dim rs, cn, sql

sql = “SELECT * FROM tabella”

Set cn = Server.CreateObject(“ADODB.Connection”)

Set rs = Server.CreateObject(“ADODB.Recordset”)

cn.Open “DSN=nomeDSN;”

Set rs.ActiveConnection = cn

rs.CursorType = 3

rs.LockType = 3

rs.Open sql, cn

%>

<center>

<%

rs.moveLast

conta = rs.recordCount

conta1 = conta

max = conta

‘Necessario inserire un valore massimo

If 50 < conta Then

conta1 = 50

Else

If conta > 10 AND conta < 50 then conta1 = conta1 – 2

End If

str = “,”

str1 = “,”

Do Until conta1 = 0

‘Genero i valori random per la ricerca all’interno del recordSet

‘per estrapolare record casualmente

Randomize

RndNumber = Int(Rnd * max)

If (InStr(1, str1, “,” & RndNumber & “,” ) = 0) Then

str1 = str1 & RndNumber & “,”

conta1 = conta1 – 1

rs.moveFirst

rs.move RndNumber

str = str & rs(“ID”) & “,”

End If

Loop

rs.Close

Set rs=Nothing

Set rs = Server.CreateObject(“ADODB.Recordset”)

‘Genero la query random

If sql = “SELECT * FROM tabella” then

sql = “SELECT * FROM tabella WHERE (((InStr(1,'” & str & “‘,(‘,’ & [ID] & ‘,’)))<>0))”

Else

sql = sql & ” AND (((InStr(1,'” & str & “‘,(‘,’ & [ID] & ‘,’)))<>0))”

End if

Set rs.ActiveConnection = cn

rs.CursorType = 3

rs.LockType = 3

rs.Open sql, cn

%>

<% Do until (rs.eof) %>

<!– Visualizzo i risultati della query random –>

<%= rs(“nomeCampo”) %>

<!– ***************************************** –>

<% rs.MoveNext

Loop

rs.Close

Set rs=Nothing %>

</body>

</html>

è possibile ordinare casualmente i risultati della query effettuata sul database

Per effettuare una connessione ODBC ad un database, è necessario innanzitutto impostare il DSN da pannello di controllo del server, poi, all’interno della pagina asp, inserire questo codice:

<%

Dim rs, cn, sql

sql = “SELECT * FROM tabella”

Set rs = Server.CreateObject(“ADODB.Recordset”)

Set cn = Server.CreateObject(“ADODB.Connection”)

cn.Open “DSN=nomeDSN

Set rs.ActiveConnection = cn

rs.Open sql, cn

%>

Verrà così generato un RecordSet con i valori restituiti dall’istruzione SQL scritta