Yes, I would recommend you use \lstinline so that the same style is applied:

Note that even though it appears the formatting is the same, if you look carefully you will notice that the spacing of the keywords in the \lstinline is slightly different than the listings.
The reason for that is that the default for \lstinline as per the documentation is that \lstinline
works like \verb but respects the active language and style. These listings use flexible columns unless requested differently in the optional argument
So, you need to change the column specification with the optional parameter:
\lstinline[columns=fixed]{declare}
or use \lstMakeShortInline[columns=fixed]| to define a special char (in this case the vertical unix pipe) and simply use |declare|:

If you don't want to specify the \basicstyle you get:

Summary:
[columns=fixed] needs to be applied to the \lstinline.
Code: Specify \basicstyle:
\documentclass[11pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{xcolor}
\lstset{
frameround=fttt,
language=SQL,
numbers=left,
breaklines=true,
keywordstyle=\color{blue}\bfseries,
basicstyle=\ttfamily\color{red},
numberstyle=\color{black}
}
\lstMakeShortInline[columns=fixed]|
\begin{document}
\begin{lstlisting}[caption={SQL},label={lst:sql}]
declare @t table(
id int
)
\end{lstlisting}
The above Listing \ref{lst:sql} demonstrates how to use |declare| statement to create a |table| variable.
\end{document}
Code: Without \basicstyle:
\documentclass[11pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\lstset{frameround=fttt,language=SQL,numbers=left,breaklines=true}
\lstMakeShortInline[columns=fixed]|
\begin{lstlisting}[caption={SQL},label={lst:sql}]
declare @t table(
id int
)
\end{lstlisting}
\noindent Using \verb+\lstinlne+:\par
The above Listing \ref{lst:sql} demonstrates how to use \lstinline[columns=fixed]{declare} statement to create a \lstinline{table} variable.
\noindent Using \verb+|+:\par
The above Listing \ref{lst:sql} demonstrates how to use |declare| statement to create a \lstinline{table} variable.
\end{document}
\lstMakeShortInline. – jub0bs Oct 10 '14 at 06:56\lstinlinethan I saw in the listings manual. They said on p.4 that it should be used as follows: ``\lstinline!var i:integer;!'` What am I missing? – ajeh Oct 10 '14 at 13:01\lstsetthey broke the listings. I am now getting undefined control sequence on each of them. When I go back to my setup it works. Without your 3 new parameters the inline listings render in the same regular text font. – ajeh Oct 10 '14 at 13:37xcolorpackage. That's why the colors were killing me. Now I see that the fonts of the listings are completely different. So it seems that w/o changing the listingbasicstylefont the inline listings will not render in the same font and style as the block listings with this approach. Am I missing anything else? – ajeh Oct 10 '14 at 14:29xcolorso that it was easier to see that the inline listings and the environment maintained consistent formatting. Yes, I believe that if you don't set\basicstylethen the text which are not keywords will take on the font of the surrounding text. Keywords are different in that thelanguage=SQLmust be definingkeywordstyle=\bfseries. But that language file is not defining a\basicstyle. – Peter Grill Oct 10 '14 at 18:16basicstylefor the inline listings to work? Perhaps should I try a different language? – ajeh Oct 10 '14 at 20:11\basicstyleand have the same output withlistingsenviroment andlstinline? – Peter Grill Oct 10 '14 at 21:29[columns=fixed]for\lstinlinein either case. – Peter Grill Oct 14 '14 at 22:36