<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlserver.ro/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>T-SQL</title><link>http://sqlserver.ro/forums/15/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9606.aspx</link><pubDate>Sat, 26 Oct 2013 11:09:24 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9606</guid><dc:creator>B_gd_n[ ]Sahlean</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9606.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9606</wfw:commentRss><description>O solutie poate fi factorizarea codului SQL care este comun celor doua apeluri ale procedurii stocate dbo.MyProc intr-un modul SQL (functie tabelara inline-de preferat, procedura stocata, view) care sa fie apelat de procedura initiala dbo.MyProc (SEELCT 200 coloane) si de o noua procedura dbo.MyProc2 (SELECT 2 coloane).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un exemplu: daca procedura initiala dbo.MyProc este de forma urmatoare&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE dbo.MyProc &lt;br /&gt;(&lt;br /&gt;params&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;SELECT 200 cols&lt;br /&gt;FROM tabel1 ... tabel 2 ... tabeln&lt;br /&gt;WHERE ...&lt;br /&gt;END;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;atunci se poate crea o functie tabelara inline (preferabila din motive de performanta) astfel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE FUNCTIOn dbo.MyFuncBase&lt;br /&gt;(&lt;br /&gt;params&lt;br /&gt;)&lt;br /&gt;RETURNS TABLE&lt;br /&gt;AS&lt;br /&gt;RETURN &lt;br /&gt;SELECT 200 cols&lt;br /&gt;FROM tabel1 ... tabel 2 ... tabeln;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;functie care sa fie apelata de procedura stocata initiala &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE dbo.MyProc &lt;br /&gt;(&lt;br /&gt;params&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;SELECT 200 cols&lt;br /&gt;FROM dbo.MyFunctBase(params) AS f&lt;br /&gt;WHERE something ...&lt;br /&gt;END;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;si de o noua procedura stocata care va intoarce doar valorile din cele doua coloane care prezinta interes:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE dbo.MyProc2&lt;br /&gt;(&lt;br /&gt;params&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;SELECT 2 cols&lt;br /&gt;FROM dbo.MyFunctBase(params) AS f&lt;br /&gt;WHERE something else ...&lt;br /&gt;END;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Daca este posibil un asemenea scenariu avantajul (teoretic - trebuiesc realizate teste) este performanta: in cazul apelului EXEC dbo.MyProc2 (care presupune SELECT 2 col2 FROM ) server-ul va avea posibilitatea sa elimine jonctiunile si tabelele/indecsii care nu sunt necesare/i.&lt;br /&gt;&lt;br /&gt;Binenteles, ca in doilea caz ai putea sa apelezi direct functia fara sa mai fie necesar&lt;br /&gt;apelul procedurilor stocate.</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9604.aspx</link><pubDate>Thu, 24 Oct 2013 12:18:19 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9604</guid><dc:creator>neo</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9604.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9604</wfw:commentRss><description>solved:&lt;br&gt;&lt;br&gt;SELECT spid, ecid&lt;br&gt;INTO r.dbo.List&lt;br&gt;FROM OPENQUERY(ls, 'set fmtonly off exec sp_who')&lt;br&gt;&lt;br&gt;Din toate coloanele returnate de o procedura stocata oarecare (ex: sp_who in ex. de fata) am extras doar 2 de care am nevoie (ex:spid, ecid in exemplul de fata ).&lt;br&gt;</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9603.aspx</link><pubDate>Thu, 24 Oct 2013 11:02:01 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9603</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9603.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9603</wfw:commentRss><description>C’est vraiment peu de chose :)&lt;br&gt;</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9602.aspx</link><pubDate>Thu, 24 Oct 2013 10:54:39 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9602</guid><dc:creator>neo</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9602.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9602</wfw:commentRss><description>merci&lt;br /&gt;&lt;br /&gt;alte idei?</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9601.aspx</link><pubDate>Thu, 24 Oct 2013 09:55:12 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9601</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9601.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9601</wfw:commentRss><description>Atunci incearca sa folosesti un query bazat pe DMVs.&lt;br&gt;</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9600.aspx</link><pubDate>Thu, 24 Oct 2013 09:47:46 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9600</guid><dc:creator>neo</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9600.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9600</wfw:commentRss><description>Lucrez cu SQL 2008 R2.&lt;br /&gt;&lt;br /&gt;Daca SP-ul are 200 de coloane , eu nu vreau sa creez #temp-ul tot cu 200 de coloane identice, ci doar cu cele 2 coloane de care am nevoie...&lt;br /&gt;Motiv pentru care as dori sa extrag din cele 200 de coloane doar 2..</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9599.aspx</link><pubDate>Thu, 24 Oct 2013 09:40:12 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9599</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9599.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9599</wfw:commentRss><description>Creeaza #tmp dupa "chipul si asemanarea" procedurii din care vrei sa iei rezultatul.&lt;br&gt;Daca lucrezi cu o versiune de SQL Server din era noastra poti sa folosesti&lt;span&gt;&lt;span id="_ctl5_ctlTopic"&gt;&lt;span id="_ctl5_ctlTopic_ctlPanelBar"&gt;&lt;span id="_ctl5_ctlTopic_ctlPanelBar_ctlTopicsRepeater__ctl13_lblFullMessage"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; DMVs in loc de sp_who - &lt;span&gt;&lt;span id="_ctl5_ctlTopic"&gt;&lt;span id="_ctl5_ctlTopic_ctlPanelBar"&gt;&lt;span id="_ctl5_ctlTopic_ctlPanelBar_ctlTopicsRepeater__ctl13_lblFullMessage"&gt;sys.dm_exec_connections, sys.dm_exec_sessions,&lt;br&gt;sys.dm_exec_requests&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br&gt;&lt;br&gt;&lt;span&gt;&lt;span id="_ctl5_ctlTopic"&gt;&lt;span id="_ctl5_ctlTopic_ctlPanelBar"&gt;&lt;span id="_ctl5_ctlTopic_ctlPanelBar_ctlTopicsRepeater__ctl13_lblFullMessage"&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9598.aspx</link><pubDate>Thu, 24 Oct 2013 09:20:30 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9598</guid><dc:creator>neo</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9598.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9598</wfw:commentRss><description>&lt;br&gt;CREATE TABLE #tmp (spid int,ecid int )&lt;br&gt;INSERT INTO #tmp EXEC SP_WHO&lt;br&gt;SELECT * FROM #tmp&lt;br&gt;&lt;br&gt;&lt;br&gt;nu functioneaza, pentru ca sp_who returneaza mai multe coloane...&lt;br&gt;&lt;br&gt;Msg 213, Level 16, State 7, Procedure sp_who, Line 79&lt;br&gt;Insert Error: Column name or number of supplied values does not match table definition.&lt;br&gt;&lt;br&gt;ori eu NU vreau sa folosesc toate coloanele ci sa folosesc DOAR o parte din ele&lt;br&gt;&lt;br&gt;&lt;br&gt;merci.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Re: Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9597.aspx</link><pubDate>Thu, 24 Oct 2013 09:04:54 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9597</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9597.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9597</wfw:commentRss><description>CREATE TABLE #tmp (&amp;lt;column_list&amp;gt;)&lt;br&gt;INSERT INTO #tmp EXEC MyProc&lt;br&gt;SELECT &amp;lt;columns&amp;gt; FROM #tmp&lt;br&gt;</description></item><item><title>Extragere anumite coloane  din rezultatul intors de SP</title><link>http://sqlserver.ro/forums/thread/9596.aspx</link><pubDate>Thu, 24 Oct 2013 08:35:25 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9596</guid><dc:creator>neo</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9596.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9596</wfw:commentRss><description>&lt;P&gt;Salut.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Se pot extrage DOAR anumite rezultate de pe anumite coloane pe care le poate returna o procedura stocata (de ex. sp_who)? (pentru ca ulterior sa le introduc intr-un tabel de exemplu) --&amp;gt; preferabil altfel decat cu OPENROWSET.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Merci.&lt;/P&gt;</description></item></channel></rss>