Passing a Table to a Stored Procedure

  • Comments posted here are about the content posted at http://www.sqlservercentral.com/columnists/jSebastian/3182.asp

    .

  • Compare the rigidity of this to :

    http://beyondsql.blogspot.com/2007/06/dataphor-13-passing-table-as-parameter.html

  • In the thread:

    comp.databases.ms-sqlserver

    Jul 25, 6:52 am

    'Pass Table as a parameter to a function'

    httphttp://tinyurl.com/2j4dvy

    Joe Celko makes the following comment on passing a table as a parameter to a procedure:

    >> Is it possible to pass a table as a parameter to a function.  <<

    'Please read a book, any book, on data modeling, and RDBMS.  A table is an entity or a relationship.  That would mean you have a magical,

    super function that works on Squids, Automobiles, Britney Spears,

    Geographical locations or anything in the whole of creation.'

     

    But the super function, reusable functions, is precisely what modern

    database developers should have at their disposable! And you can have it:

     

    http://beyondsql.blogspot.com/2007/08/dataphor-creating-super-function.html

  • " That would mean you have a magical,

    super function that works on Squids, Automobiles, Britney Spears"

    That's a great quote, but I don't think it's necessarily pejorative, as the link states. IE, you already have tables, and tables can be accessed by procedures. Why on earth would you want to pass it in as a variable when it's already in the database and available?

    Myself, I find the article very interesting. This sort of language might promote code re-use, elegance, and security. It might even promote set based procedure code instead of the crappy RBAR I see now.

    Signature is NULL

  • This is a very useful feature, we were looking for it in SQL Server for ages. Thank you for discussing it here Jacob.

  • Anyone have any idea how this SQL 2008 functionality would/could/can be harnassed within application development ie ASP.net, vb.net, c# ...

  • Calvin,

    You sir are someone who deserves a MySpace as opposed to those who should more approriately be on IJustTakeUpSpace. Your comments are noted and appreciated. Stay tuned, there is much, much more

    best,

    steve

    P.S. A table as a 'variable' is a cornerstone of a 'relational' database

    and is a distinguishing concept from an sql table/database. Perhaps this will help:

    http://beyondsql.blogspot.com/2007/09/dataphor-all-tables-are-typed-variables.html

    P.S. Celko is a sarcastic sob but we get along just fine

  • In the article foolwing sample is used:

       10 INSERT INTO @Items (ItemNumber, Qty)

       11     SELECT '11000', 100 UNION ALL

       12     SELECT '22000', 200 UNION ALL

       13     SELECT '33000', 300

       14 

     

    As a small remark: I think we are now in the Katmai world, there we could use a simple INSERT like this:

     

    INSERT INTO @Items (ItemNumber, Qty)

    VALUES

    ('11000', 100),

    ('22000', 200),

    ('33000', 300)

    ;

     

    Best regards,

    Olaf

  • Passing a table to a stored procedure is an interesting idea.  I may have missed something, but doesn't this have an effect on the compiled execution plan for the stored procedure.

  • From my take, this still doesn't solve the problem of passing a table from application development down to the database, with sending several delimited values in seperate variables, Correct?

    Garick

    http://www.nootz.net

  • Heh... more spam... at least the table example works, Rog... Saw the free code you guys posted for RAC and apparently a lot of the stuff doesn't work correctly...

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • The article was nice and simple... shows how to make and exec a proc that uses a table parameter.

    What I'd like to know (and anyone can certainly answer) is why an app would need to pass an array (table) of parameters to begin with?  I'm not a GUI type of guy so I'd really like to know so I can support my Gui Developers better...

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff,

    If your going to swiftboat me the least you should do is be specific.

    What exactly are you referring to that doesn't work.?

    Fish or cut bait.

  • Heh... you're right... wrong article... it was about "RAAS", not "RAC"...

    You'r still nothing more than a spammer...  I can't understand why you don't get your product evaluated on this site... what are you afraid of

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • In the delimited list scenario, it is probably still easiest to rip the list using a User-defined table-valued function.

Viewing 15 posts - 1 through 15 (of 50 total)

You must be logged in to reply to this topic. Login to reply