Tsql sp_executesql语法错误
我正在尝试学习和使用Tsql sp_executesql语法错误,tsql,sql-server-2008-r2,sp-executesql,Tsql,Sql Server 2008 R2,Sp Executesql,我正在尝试学习和使用sp_executesql,即使是这个简单的SQL语句,我也无法摆脱 DECLARE @sql NVARCHAR(MAX) = NULL DECLARE @WHERE NVARCHAR(MAX) = NULL SET @sql = N' SELECT * FROM MyTable @WHERE' SET @WHERE = ISNULL(' WHERE ' + @WHERE, ''); EXECUTE sp_
sp_executesql
,即使是这个简单的SQL语句,我也无法摆脱
DECLARE @sql NVARCHAR(MAX) = NULL
DECLARE @WHERE NVARCHAR(MAX) = NULL
SET @sql = N'
SELECT
*
FROM
MyTable
@WHERE'
SET @WHERE = ISNULL(' WHERE ' + @WHERE, '');
EXECUTE sp_executesql
@statement = @sql
, @params = N'@WHERE nvarchar(MAX)'
, @WHERE = @WHERE;
我得到了这个错误,无法找出原因
味精102,第15级,状态1,第6行“@WHERE”附近的语法不正确
不能将where子句作为参数 我建议您阅读MVP Erland Sommarskog关于这个主题的文章的一节,以及整篇文章 通过直接将以下内容附加到SQL字符串,您可以在没有参数的情况下完成此操作,即使这不是一个好主意:
DECLARE @sql NVARCHAR(MAX) = NULL
DECLARE @WHERE NVARCHAR(MAX) = NULL
SET @sql = N'SELECT * FROM MyTable' + ISNULL(' WHERE ' + @WHERE, '');
EXECUTE sp_executesql @sql
不能将where子句作为参数 我建议您阅读MVP Erland Sommarskog关于这个主题的文章的一节,以及整篇文章 通过直接将以下内容附加到SQL字符串,您可以在没有参数的情况下完成此操作,即使这不是一个好主意:
DECLARE @sql NVARCHAR(MAX) = NULL
DECLARE @WHERE NVARCHAR(MAX) = NULL
SET @sql = N'SELECT * FROM MyTable' + ISNULL(' WHERE ' + @WHERE, '');
EXECUTE sp_executesql @sql
不能将where子句作为参数 我建议您阅读MVP Erland Sommarskog关于这个主题的文章的一节,以及整篇文章 通过直接将以下内容附加到SQL字符串,您可以在没有参数的情况下完成此操作,即使这不是一个好主意:
DECLARE @sql NVARCHAR(MAX) = NULL
DECLARE @WHERE NVARCHAR(MAX) = NULL
SET @sql = N'SELECT * FROM MyTable' + ISNULL(' WHERE ' + @WHERE, '');
EXECUTE sp_executesql @sql
不能将where子句作为参数 我建议您阅读MVP Erland Sommarskog关于这个主题的文章的一节,以及整篇文章 通过直接将以下内容附加到SQL字符串,您可以在没有参数的情况下完成此操作,即使这不是一个好主意:
DECLARE @sql NVARCHAR(MAX) = NULL
DECLARE @WHERE NVARCHAR(MAX) = NULL
SET @sql = N'SELECT * FROM MyTable' + ISNULL(' WHERE ' + @WHERE, '');
EXECUTE sp_executesql @sql