Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

create table and indexes in the same command Expand / Collapse
Author
Message
Posted Monday, September 13, 2010 8:40 AM
Valued Member

Valued MemberValued MemberValued MemberValued MemberValued MemberValued MemberValued MemberValued Member

Group: General Forum Members
Last Login: Tuesday, January 22, 2013 9:16 AM
Points: 50, Visits: 127
how do i create the table and indexes in the same command...

create table employees
(emp_number integer constraint PK_emp_number primary key,
emp_lastname text(30) constraint idxemp_lastname index,
emp_fistname text(30))

I don't want the lastname to be unique may have lots of 'SMITH's working for customer. i just want to index it for faster searches.
Post #984830
Posted Wednesday, September 22, 2010 8:57 AM
Mr or Mrs. 500

Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500

Group: General Forum Members
Last Login: Tuesday, May 14, 2013 1:29 AM
Points: 593, Visits: 629
I am using a SQL Scratchpad form for executing all SQL commands via ADO (much better SQL support than through the Access UI)

If you pass CREATE TABLE .... ; followed by CREATE INDEX ....; and whatever else you can execute them in one go.

Basically the code is executed like this:

Private Sub ExecuteSQL(byval SQL_Command as string)

Dim DB_Connection As ADODB.Connection
Dim SQL_Statements() As String
Dim i As Long


'create an array with the SQL statements
SQL_Statements() = Split(SQL_Command, ";")

'establish an ADO connection to the same database
Set DB_Connection = Application.CurrentProject.Connection

'process all SQL statements in the array
For i = 0 To UBound(SQL_Statements) - 1
DB_Connection.Execute SQL_Statement
Next

DB_Connection.Close

End Sub


brgds

Philipp Post
Post #991260
Posted Thursday, September 23, 2010 4:00 AM
SSC Journeyman

SSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC Journeyman

Group: General Forum Members
Last Login: Yesterday @ 1:22 PM
Points: 81, Visits: 680
Hi Philipp, where do you get this SQL Scratchpad?
Post #991867
Posted Thursday, September 23, 2010 4:13 AM
SSC Journeyman

SSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC Journeyman

Group: General Forum Members
Last Login: Yesterday @ 1:22 PM
Points: 81, Visits: 680
By the way, shouldn't it be
DB_Connection.Execute SQL_Statement(i)?
Post #991869
Posted Saturday, September 25, 2010 4:03 AM
Mr or Mrs. 500

Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500

Group: General Forum Members
Last Login: Tuesday, May 14, 2013 1:29 AM
Points: 593, Visits: 629
grovelli-262555 (9/23/2010)
By the way, shouldn't it be
DB_Connection.Execute SQL_Statement(i)?


Yes, right. I copied it out of my (home made) scratchpad and simplified it a bit for easier reading. Obviously this was lost.

It should read DB_Connection.Execute SQL_Statements(i)

The scratch pad is not very difficult to make. Just create a new form with a text box and a button and put this code behind the form and make the button execute it with the input from the text box.

One thing I like is that you can create table CHECK constraints (i. e. those which depend on more than one column like start_date < end_date) what you otherwise could not. However you will have to remember the name of the constraint to drop it again (it will not display anywhere in the Access UI). You can also create CHECK constraints with a SELECT statement in it (what neither SQL Server nor DB2 could). What I do not use are creating VIEWs (you can simply use the saved queries as a VIEW) and creating stored procedures (just very simple ones are possible). I put such SQL in a VBA module and execute it from there.


brgds

Philipp Post
Post #993242
Posted Saturday, September 25, 2010 6:07 AM
SSC Journeyman

SSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC Journeyman

Group: General Forum Members
Last Login: Yesterday @ 1:22 PM
Points: 81, Visits: 680
Thanks Philipp,
can you give me an example of a CHECK constraints with a SELECT statement in it?
Post #993256
Posted Sunday, September 26, 2010 3:25 AM
Mr or Mrs. 500

Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500

Group: General Forum Members
Last Login: Tuesday, May 14, 2013 1:29 AM
Points: 593, Visits: 629
grovelli-262555 (9/25/2010)
Thanks Philipp,
can you give me an example of a CHECK constraints with a SELECT statement in it?


ALTER TABLE Customers
ADD CONSTRAINT LimitRule
CHECK (CustomerLimit <= (SELECT MAX(Limit)
FROM CreditLimit));

The ISO/ANSI standard has this. The standard also has CREATE ASSERTION which does a similar job but is external to the tables. All would be nice to have but we are stuck with Triggers and VIEWs with CHECK options in those RDBMS.


brgds

Philipp Post
Post #993347
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse