<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Maciej Grabek &#187; SQL Server</title>
	<atom:link href="https://blog.maciejgrabek.com/category/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.maciejgrabek.com</link>
	<description>/* Make it See Sharp - Windows Phone, C#, .NET i nie tylko */</description>
	<lastBuildDate>Mon, 27 Oct 2014 11:18:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Gdy MS SQL Server Management Studio to za mało</title>
		<link>https://blog.maciejgrabek.com/2011/09/01/gdy-ms-sql-server-management-studio-to-za-malo/</link>
		<comments>https://blog.maciejgrabek.com/2011/09/01/gdy-ms-sql-server-management-studio-to-za-malo/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 15:44:08 +0000</pubDate>
		<dc:creator><![CDATA[maciek]]></dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Sql Server Management Studio]]></category>

		<guid isPermaLink="false">http://maciejgrabek.com/?p=10954</guid>
		<description><![CDATA[Czasem okazuje się, że MS SQL Server Management Studio to za mało. Dobrym przykładem może tu być korzystanie z dużych plików ze skryptami SQL. Przeważnie pliki te są wynikiem automatycznego generowania danych inicjujących bazę lub tabelę (oczywiście nie tylko ). Z pomocą przychodzi polecenie dostępne z linii komend o nazwie sqlcmd. Najczęściej wykorzystywana składnia tego polecenia (przynajmniej w moim przypadku ) wygląda nastepująco: 1 sqlcmd -S serverName -E -d databaseName -i scriptFilePath W tym przypadku korzystamy ze zintegrowanego uwierzytelniania (przełącznik E), jednakże równie dobrze możemy użyć loginu (przełącznik U) i hasła (przełącznik P). Nie sposób opisać tu wszystkich możliwych opcji, tym bardziej, że są one dobrze zaprezentowanie na stronach MSDN. Poprzednikiem sqlcmd jest polecenie osql (jego opis również jest dostępny na stronach MSDN). Dla osób zainteresowanych różnicami odsyłam na wspomniane wyżej strony MSDN oraz na blog SQL Authority (http://blog.sqlauthority.com/2009/01/05/sql-server-sqlcmd-vs-osql-basic-comparison/). Warto pamiętać o konsoli, szczególnie gdy pod ręką nie ma Management Studio, lub po prostu nie daje ono sobie rady (a niedociągnięć w nim jest nieco więcej niż wspomniana obsługa dużych plików ).]]></description>
				<content:encoded><![CDATA[<p>Czasem okazuje się, że MS SQL Server Management Studio to za mało. Dobrym przykładem może tu być korzystanie z dużych plików ze skryptami SQL. Przeważnie pliki te są wynikiem automatycznego generowania danych inicjujących bazę lub tabelę (oczywiście nie tylko <img src="https://blog.maciejgrabek.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ). Z pomocą przychodzi polecenie dostępne z linii komend o nazwie <strong>sqlcmd</strong>.</p>
<p>Najczęściej wykorzystywana składnia tego polecenia (przynajmniej w moim przypadku <img src="https://blog.maciejgrabek.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ) wygląda nastepująco:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;">sqlcmd <span style="color: #66cc66;">-</span>S serverName <span style="color: #66cc66;">-</span>E <span style="color: #66cc66;">-</span>d databaseName <span style="color: #66cc66;">-</span>i scriptFilePath</pre></td></tr></table></div>

<p>W tym przypadku korzystamy ze zintegrowanego uwierzytelniania (przełącznik E), jednakże równie dobrze możemy użyć loginu (przełącznik U) i hasła (przełącznik P). Nie sposób opisać tu wszystkich możliwych opcji, tym bardziej, że są one dobrze zaprezentowanie <a href="http://msdn.microsoft.com/en-us/library/ms162773.aspx" target="_blank">na stronach MSDN</a>.</p>
<p>Poprzednikiem <strong>sqlcmd</strong> jest polecenie <strong>osql</strong> (jego opis również jest dostępny <a href="http://msdn.microsoft.com/en-us/library/aa214012(v=SQL.80).aspx" target="_blank">na stronach MSDN</a>). Dla osób zainteresowanych różnicami odsyłam na wspomniane wyżej strony MSDN oraz na blog SQL Authority (<a href="http://blog.sqlauthority.com/2009/01/05/sql-server-sqlcmd-vs-osql-basic-comparison/">http://blog.sqlauthority.com/2009/01/05/sql-server-sqlcmd-vs-osql-basic-comparison/</a>).</p>
<p>Warto pamiętać o konsoli, szczególnie gdy pod ręką nie ma Management Studio, lub po prostu nie daje ono sobie rady (a niedociągnięć w nim jest nieco więcej niż wspomniana obsługa dużych plików <img src="https://blog.maciejgrabek.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ).</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.maciejgrabek.com/2011/09/01/gdy-ms-sql-server-management-studio-to-za-malo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prawda o SqlCommand.Parameters</title>
		<link>https://blog.maciejgrabek.com/2010/12/31/prawda-o-sqlcommand-parameters/</link>
		<comments>https://blog.maciejgrabek.com/2010/12/31/prawda-o-sqlcommand-parameters/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 23:00:37 +0000</pubDate>
		<dc:creator><![CDATA[maciek]]></dc:creator>
				<category><![CDATA[Ciekawostki]]></category>
		<category><![CDATA[HOW TO]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SqlCommand]]></category>

		<guid isPermaLink="false">http://maciejgrabek.com/?p=10470</guid>
		<description><![CDATA[Czy zastanawialiście się kiedyś jak dodawać parametry do SqlCommand? Klasa ta zawiera pole Parameters typy SqlParameterCollection, na którym możemy wykonać między innymi metodę AddWithValue(string, object). W internecie jak i w dokumentacji w nazwach parametrów na początku jest zawsze użyty znak &#8220;@&#8221;. Przy okazji jednego z projektów musiałem odpowiedzieć sobie na pytanie: Czy muszę zadbać o &#8220;@&#8221; przy nazwie parametru? Nie zastanawiając się długo postanowiłem, zgodnie duchem empiryzmu, sprawdzić co się stanie w poszczególnych sytuacjach. Baza danych. Dla testów mała baza danych z jedną procedurą pobierającą dwa parametry: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE DATABASE SqlCmdParametersTest USE &#91;SqlCmdParametersTest&#93; CREATE PROCEDURE &#91;dbo&#93;.&#91;spTest&#93; @Param1 INT, @Param2 INT AS BEGIN SET NOCOUNT ON; SELECT @Param1 Col1, @Param2 Col2END GO -- TEST EXEC &#91;dbo&#93;.&#91;spTest&#93; 1, 2 EXEC &#91;dbo&#93;.&#91;spTest&#93; @Param1=1, @Param2=2 EXEC &#91;dbo&#93;.&#91;spTest&#93; @Param2=1, @Param1=2 Aplikacja testowa Teraz nie pozostaje nic innego jak przygotować małą aplikację konsolową, która skorzysta z tej procedury. Wiadomo, że podstawowym sposobem dodawania parametrów jest użycie &#8220;@&#8221; na początku nazwy, zatem będzie to pierwszy sposób użycia. Jako drugi przypadek weźmiemy parametr bez tego znaku. Czy to wszystkie możliwości? Nie &#8211; można to przecież jeszcze połączyć i użyć raz z &#8220;@&#8221; a<a href="https://blog.maciejgrabek.com/2010/12/31/prawda-o-sqlcommand-parameters/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<p>Czy zastanawialiście się kiedyś jak dodawać parametry do<strong> <em>SqlCommand</em></strong>? Klasa ta zawiera pole <strong><em>Parameters</em></strong> typy SqlParameterCollection, na którym możemy wykonać między innymi metodę <em>AddWithValue(string, object).</em> W internecie jak i w <a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue.aspx" target="_blank">dokumentacji</a> w nazwach parametrów na początku jest zawsze użyty znak &#8220;@&#8221;.</p>
<p>Przy okazji jednego z projektów musiałem odpowiedzieć sobie na pytanie: <em><span style="text-decoration: underline;">Czy muszę zadbać o &#8220;@&#8221; przy nazwie parametru?</span></em> Nie zastanawiając się długo postanowiłem, zgodnie duchem empiryzmu, sprawdzić co się stanie w poszczególnych sytuacjach.</p>
<h3>Baza danych.</h3>
<p>Dla testów mała baza danych z jedną procedurą pobierającą dwa parametry:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">DATABASE</span> SqlCmdParametersTest
<span style="color: #993333; font-weight: bold;">USE</span> <span style="color: #66cc66;">&#91;</span>SqlCmdParametersTest<span style="color: #66cc66;">&#93;</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">PROCEDURE</span> <span style="color: #66cc66;">&#91;</span>dbo<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>spTest<span style="color: #66cc66;">&#93;</span>
	@Param1 <span style="color: #993333; font-weight: bold;">INT</span><span style="color: #66cc66;">,</span>
	@Param2 <span style="color: #993333; font-weight: bold;">INT</span>
<span style="color: #993333; font-weight: bold;">AS</span>
<span style="color: #993333; font-weight: bold;">BEGIN</span>
	<span style="color: #993333; font-weight: bold;">SET</span> NOCOUNT <span style="color: #993333; font-weight: bold;">ON</span>;
	<span style="color: #993333; font-weight: bold;">SELECT</span>
 		@Param1 Col1<span style="color: #66cc66;">,</span>
		@Param2 Col2END
<span style="color: #993333; font-weight: bold;">GO</span>
<span style="color: #808080; font-style: italic;">-- TEST</span>
<span style="color: #993333; font-weight: bold;">EXEC</span> <span style="color: #66cc66;">&#91;</span>dbo<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>spTest<span style="color: #66cc66;">&#93;</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">2</span>
<span style="color: #993333; font-weight: bold;">EXEC</span> <span style="color: #66cc66;">&#91;</span>dbo<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>spTest<span style="color: #66cc66;">&#93;</span> @Param1<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> @Param2<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">2</span>
<span style="color: #993333; font-weight: bold;">EXEC</span> <span style="color: #66cc66;">&#91;</span>dbo<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>spTest<span style="color: #66cc66;">&#93;</span> @Param2<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> @Param1<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">2</span></pre></td></tr></table></div>

<h3>Aplikacja testowa</h3>
<p>Teraz nie pozostaje nic innego jak przygotować małą aplikację konsolową, która skorzysta z tej procedury. Wiadomo, że podstawowym sposobem dodawania parametrów jest użycie &#8220;@&#8221; na początku nazwy, zatem będzie to pierwszy sposób użycia. Jako drugi przypadek weźmiemy parametr bez tego znaku. Czy to wszystkie możliwości? Nie &#8211; można to przecież jeszcze połączyć i użyć raz z &#8220;@&#8221; a raz bez &#8211; ot tak, żeby było trudniej. Zatem do dzieła:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Data</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Data.SqlClient</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">namespace</span> SqlCmdParametersTest
<span style="color: #008000;">&#123;</span>
    <span style="color: #6666cc; font-weight: bold;">class</span> Program
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> Main<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> args<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008000;">&#40;</span>SqlConnection sqlConn <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SqlConnection<span style="color: #008000;">&#40;</span><span style="color: #666666;">@&quot;Data Source=localhost;Initial Catalog=SqlCmdParametersTest;Integrated Security=SSPI;Persist Security Info=true&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                sqlConn<span style="color: #008000;">.</span><span style="color: #0000FF;">Open</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008000;">&#40;</span>SqlCommand sqlCmd <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SqlCommand<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
                <span style="color: #008000;">&#123;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">CommandType</span> <span style="color: #008000;">=</span> CommandType<span style="color: #008000;">.</span><span style="color: #0000FF;">StoredProcedure</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Connection</span> <span style="color: #008000;">=</span> sqlConn<span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">CommandText</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;[dbo].[spTest]&quot;</span><span style="color: #008000;">;</span>
&nbsp;
                    <span style="color: #008080; font-style: italic;">//call with @</span>
                    Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;With @&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Clear</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">AddWithValue</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;@Param1&quot;</span>, <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">AddWithValue</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;@Param2&quot;</span>, <span style="color: #FF0000;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    <span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008000;">&#40;</span>SqlDataReader reader <span style="color: #008000;">=</span> sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteReader</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
                    <span style="color: #008000;">&#123;</span>
                        ReadResult<span style="color: #008000;">&#40;</span>reader<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    <span style="color: #008000;">&#125;</span>
&nbsp;
                    <span style="color: #008080; font-style: italic;">//call without @</span>
                    Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Without @&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Clear</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">AddWithValue</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Param1&quot;</span>, <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">AddWithValue</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Param2&quot;</span>, <span style="color: #FF0000;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    <span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008000;">&#40;</span>SqlDataReader reader <span style="color: #008000;">=</span> sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteReader</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
                    <span style="color: #008000;">&#123;</span>
                        ReadResult<span style="color: #008000;">&#40;</span>reader<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    <span style="color: #008000;">&#125;</span>
&nbsp;
                    <span style="color: #008080; font-style: italic;">//call mixed</span>
                    Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Mixed&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Clear</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">AddWithValue</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;@Param1&quot;</span>, <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">Parameters</span><span style="color: #008000;">.</span><span style="color: #0000FF;">AddWithValue</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Param2&quot;</span>, <span style="color: #FF0000;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    <span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008000;">&#40;</span>SqlDataReader reader <span style="color: #008000;">=</span> sqlCmd<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteReader</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
                    <span style="color: #008000;">&#123;</span>
                        ReadResult<span style="color: #008000;">&#40;</span>reader<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    <span style="color: #008000;">&#125;</span>
                <span style="color: #008000;">&#125;</span>
            <span style="color: #008000;">&#125;</span>
&nbsp;
            Console<span style="color: #008000;">.</span><span style="color: #0000FF;">ReadLine</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> ReadResult<span style="color: #008000;">&#40;</span>SqlDataReader reader<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>reader<span style="color: #008000;">.</span><span style="color: #0000FF;">Read</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Result:&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;{0} {1}&quot;</span>, reader<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Col1&quot;</span><span style="color: #008000;">&#93;</span>, reader<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Col2&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #008000;">&#125;</span>
            <span style="color: #0600FF; font-weight: bold;">else</span>
            <span style="color: #008000;">&#123;</span>
                Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Result is empty&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Wynik dziąłania aplikacji widać na rysunku poniżej:</p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/12/SqlCmdParametersTestResult.png" target="_blank"><img class="alignnone size-medium wp-image-10474" title="SqlCmdParametersTestResult" src="http://maciejgrabek.com/wp-content/uploads/2010/12/SqlCmdParametersTestResult-300x104.png" alt="SqlCmdParametersTestResult" width="300" height="104" /></a></p>
<p>Jak widać wynik jest zgodny z oczekiwaniami &#8211; wszystko działa poprawnie, nawet &#8220;mix&#8221;. Warto jeszcze sprawdzić co dociera do SQL Servera, bo może to on jest tą &#8220;sprytną stroną&#8221;&#8230; Po uruchomieniu SQL Profilera widzimy, że jednak krok ku wygodzie a przede wszystkim swobodzie jest po stronie .NET Framework.</p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/12/SqlCmdParametersTestProfiler.png" target="_blank"><img class="alignnone size-medium wp-image-10473" title="SqlCmdParametersTestSqlProfiler" src="http://maciejgrabek.com/wp-content/uploads/2010/12/SqlCmdParametersTestProfiler-300x46.png" alt="SqlCmdParametersTestSqlProfiler" width="300" height="46" /></a></p>
<h3>Wniosek</h3>
<p>Z SqlCommand.Parameters można korzystać swobodnie i bez martwienia się o &#8220;@&#8221; lub jej brak.</p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/12/SqlCmdParametersTest.zip" target="_blank">Paczka do pobrania</a></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.maciejgrabek.com/2010/12/31/prawda-o-sqlcommand-parameters/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SQL Management Studio Specify Values for Template Parameters</title>
		<link>https://blog.maciejgrabek.com/2010/11/06/sql-management-studio-specify-values-for-template-parameters/</link>
		<comments>https://blog.maciejgrabek.com/2010/11/06/sql-management-studio-specify-values-for-template-parameters/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 16:15:38 +0000</pubDate>
		<dc:creator><![CDATA[maciek]]></dc:creator>
				<category><![CDATA[HOW TO]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Sql Server Management Studio]]></category>

		<guid isPermaLink="false">http://maciejgrabek.com/?p=10303</guid>
		<description><![CDATA[Korzystając z Microsoft SQL Server Management Studio czasem zdarza nam się korzystać z szablonów. Zdarza się to gdy dodajemy nową procedurę, funkcję, tryger i inne, lub korzystamy z eksploratora szablonów (Ctrl+Alt+T, View -&#62; Template Explorer). Szablony posiadają pewne parametry rozumiane przez SSMS. Aby z nich skorzystać używamy skrótu Ctrl-Shift-M. Wówczas pojawia nam się okno 9przykład dla procedury składowanej): Co jednak zrobić, jeżeli to nie działa? Należy w menu wybrać Tools &#62; Options, następnie Keyboard jak na poniższym obrazku: Tam w opcji Keyboard Scheme wybrać najpierw SQL Server 2000, kliknąć OK i wykonać wszystko ponownie tym razem wracając ustawienie na Standard. Tym razem w oknie szablonu skrót Ctrl-Shift-M powinien zadziałać]]></description>
				<content:encoded><![CDATA[<p>Korzystając z Microsoft SQL Server Management Studio czasem zdarza nam się korzystać z szablonów. Zdarza się to gdy dodajemy nową procedurę, funkcję, tryger i inne, lub korzystamy z eksploratora szablonów (<strong>Ctrl+Alt+T</strong>, View -&gt; Template Explorer). Szablony posiadają pewne parametry rozumiane przez SSMS. Aby z nich skorzystać używamy skrótu <strong>Ctrl-Shift-M</strong>. Wówczas pojawia nam się okno 9przykład dla procedury składowanej):</p>
<p><img class="alignnone size-full wp-image-10304" title="Specify Stored Procedure Parameters" src="http://maciejgrabek.com/wp-content/uploads/2010/11/SpecifyStoredProcedureParameters.jpg" alt="Specify Stored Procedure Parameters" width="440" height="311" /></p>
<p>Co jednak zrobić, jeżeli to nie działa?</p>
<p>Należy w menu wybrać <em>Tools</em> &gt; <em>Options</em>, następnie <em>Keyboard</em> jak na poniższym obrazku:</p>
<p><img class="alignnone size-full wp-image-10305" title="Tools_Options_Keyboard_KeyboardScheme" src="http://maciejgrabek.com/wp-content/uploads/2010/11/Tools_Options_Keyboard_KeyboardScheme.jpg" alt="Tools_Options_Keyboard_KeyboardScheme" width="550" height="319" /></p>
<p>Tam w opcji Keyboard Scheme wybrać najpierw <em>SQL Server 2000</em>, kliknąć OK i wykonać wszystko ponownie tym razem wracając ustawienie na <em>Standard</em>. Tym razem w oknie szablonu skrót <strong>Ctrl-Shift-M</strong> powinien zadziałać <img src="https://blog.maciejgrabek.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.maciejgrabek.com/2010/11/06/sql-management-studio-specify-values-for-template-parameters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sql Server Management Studio &#8211; Saving changes is not permitted</title>
		<link>https://blog.maciejgrabek.com/2010/04/18/sql-server-management-studio-%e2%80%93-saving-changes-is-not-permitted/</link>
		<comments>https://blog.maciejgrabek.com/2010/04/18/sql-server-management-studio-%e2%80%93-saving-changes-is-not-permitted/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 17:42:00 +0000</pubDate>
		<dc:creator><![CDATA[maciek]]></dc:creator>
				<category><![CDATA[HOW TO]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Saving changes is not permitted]]></category>
		<category><![CDATA[Sql Server Management Studio]]></category>

		<guid isPermaLink="false">http://maciejgrabek.com/maciek_blog/?p=9973</guid>
		<description><![CDATA[Gdy podczas edycji tabeli przy użyciu Sql Server Management Studio pojawi się komunikat: “Savin changes is not permitted. The changes you have made require the following tables to be dropped and re-created &#8230;.” Aby tego uniknąć wystarczy uruchomić Menu –&#62; Tools –&#62; Options –&#62; Designers –&#62; Table and Database Designers i odznaczyć pole “Prevent saving changes that require table re-creation” Gotowe!]]></description>
				<content:encoded><![CDATA[<p>Gdy podczas edycji tabeli przy użyciu Sql Server Management Studio pojawi się komunikat:</p>
<p>“Savin changes is not permitted. The changes you have made require the following tables to be dropped and re-created &#8230;.”</p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/04/sqlsms1.png"><img class="alignnone size-medium wp-image-10184" title="sqlsms1" src="http://maciejgrabek.com/wp-content/uploads/2010/04/sqlsms1-300x66.png" alt="" width="300" height="66" /></a></p>
<p>Aby tego uniknąć wystarczy uruchomić Menu –&gt; Tools –&gt; Options –&gt; Designers –&gt; Table and Database Designers i odznaczyć pole “Prevent saving changes that require table re-creation”</p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/04/sqlsms2.png"><img class="alignnone size-medium wp-image-10185" title="sqlsms2" src="http://maciejgrabek.com/wp-content/uploads/2010/04/sqlsms2-300x174.png" alt="" width="300" height="174" /></a></p>
<p>Gotowe!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.maciejgrabek.com/2010/04/18/sql-server-management-studio-%e2%80%93-saving-changes-is-not-permitted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
