Passing a Table to a Stored Procedure

  • jacob sebastian

    SSChampion

    Points: 11812

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

    .

  • steve dassin

    SSCrazy

    Points: 2396

    Compare the rigidity of this to :

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

  • steve dassin

    SSCrazy

    Points: 2396

    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

  • Calvin Lawson

    SSChampion

    Points: 11030

    " 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

  • Soma Ghosal

    Valued Member

    Points: 54

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

  • Andrew Page-218373

    SSC Veteran

    Points: 290

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

  • steve dassin

    SSCrazy

    Points: 2396

    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

  • Olaf Pietsch-336727

    SSC Enthusiast

    Points: 103

    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

  • Simon-220850

    SSCrazy

    Points: 2789

    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.

  • Garick Newtzie

    SSC Enthusiast

    Points: 138

    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

  • Jeff Moden

    SSC Guru

    Points: 994667

    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.
    "If you think its expensive to hire a professional to do the job, wait until you hire an amateur."--Red Adair
    "Change is inevitable... change for the better is not."
    When you put the right degree of spin on it, the number 3|8 is also a glyph that describes the nature of a DBAs job. 😉

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

  • Jeff Moden

    SSC Guru

    Points: 994667

    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.
    "If you think its expensive to hire a professional to do the job, wait until you hire an amateur."--Red Adair
    "Change is inevitable... change for the better is not."
    When you put the right degree of spin on it, the number 3|8 is also a glyph that describes the nature of a DBAs job. 😉

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

  • steve dassin

    SSCrazy

    Points: 2396

    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.

  • Jeff Moden

    SSC Guru

    Points: 994667

    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.
    "If you think its expensive to hire a professional to do the job, wait until you hire an amateur."--Red Adair
    "Change is inevitable... change for the better is not."
    When you put the right degree of spin on it, the number 3|8 is also a glyph that describes the nature of a DBAs job. 😉

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

  • Hugh Thomas

    Ten Centuries

    Points: 1017

    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 51 total)

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