SQL 怎么样通过语句执行一个自定义的字符串

在 SQL Server 中:
DECLARE @sqlStr VARCHAR(8000)
SET @sqlStr = ' SELECT * FROM YHB '
怎么样写代码,让 SQL Server 执行@sqlStr 语句

两种方式:

exec @sqlStr;

exec sp_executesql @sqlStr;

绝大多数情况下,应使用第二种方式来执行动态sql。因为这种方式能重用执行计划,并且更安全。

追问

我执行的是这个:exec sp_executesql @sqlStr
为什么会出错啊,下面是错误:
消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行
过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。

追答

把@sqlStr 改成 nvarchar(4000)类型

追问

我都改为 nvarchar(8000) 了,还是报那样的错误;执行 exec @sqlStr 这个,就没有错误。
sp_executesql 这个是不是一个存储过程啊,需要传递参数,@sqlStr 就是那个参数,是不是这样啊?

追答

nvarchar(4000)。还是不行的话你截个图

追问

这个就是结果, 我用的数据库是 SQL Server 2008 

追答

哥,nvarchar(4000),前面有个n

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-06
EXECUTE sp_executesql @sqlStr

SQL 怎么样通过语句执行一个自定义的字符串
两种方式:exec @sqlStr;或 exec sp_executesql @sqlStr;绝大多数情况下,应使用第二种方式来执行动态sql。因为这种方式能重用执行计划,并且更安全。

dreamweaver中怎么用sql自定义连接字符串
conn=mysql_connect($host,$user,$pass);result=mysql_select_db($database) or die("数据库连接出错,请检查数据库配置是否正确!");

declareSQL中declare的经典语句
在SQL中,`DECLARE`语句用于定义变量。以下是通过`DECLARE`语句执行的两种常见操作:批量插入信息和批量更新。首先,让我们探讨如何使用`DECLARE`批量插入信息。创建两个变量:`@MyID`作为`uniqueidentifier`类型,`@INT`作为整数类型。初始化`@INT`为0,设置循环条件,以决定要插入的行数。在循环内部,首先...

sql语句如何调用字符串后面制定位数的值
sql2="select * from [KS_Class] where left(ts,30)= '" & rs("TS") & "' order by ID asc"

如何在sql中定义一个函数,函数功能是传入一个字符串,返回这个字符串中的...
1通过VisualStudio2008新建一个SQLServer项目。2,配置连接的数据库点击上一步确定后,可以通过添加新引用来添加一个数据库连接(只适用MS SQL Server 2005或以上版本,再次提醒哦),添加以后选择其中一个数据库点击确。3,添加一个自定义函数。然后编写自定义函数的类即可。用户自定义函数是指如果要在公式...

SQL 怎么提取一个模式的字符串
第一种,也是我用的最多的,就是用sql server 自身带的一些字符串函数去处理,这种方式需要你自己去分析,做法比较灵活,比如书你这个,如果仅以你这3个示例字段来讲,可以将‘ A.’替换成‘’update table1 set column1 = REPLACE(column1,' A.','')然后依次去执行B C ...,但是这么做...

source命令执行一个SQL脚本文件,以一个文件名作为参数。
(\\?)显示帮助信息clear(\\c)明确当前输入语句connect(\\r)连接到服务器,可选参数为数据库和主机delimiter(\\d)设置语句分隔符ego(\\G)发送命令到MySQL服务器,并显示结果exit(\\q)退出MySQL等同于quitgo(\\g)发送命令到MySQL服务器help(\\h)显示帮助信息notee(\\t)不写输出文件print(\\p)...

SQL语句,如何将一个字段中的一部分字符串作为条件查询
字符串中第一个位置始终为1;[ length ]:提取的字符数,如果省略,substr将返回整个字符串;函数功能:截取函数,可以实现提取字符串中指定的字符数;针对本例举例说明:select * from 表名 where substr([D],1,2)=“10”语句功能说明:从指定表中查询D字段第1、2个字符为“10的记录”。

如何使用一条sql可以把数据库表中的sql查出来并执行
你是在哪里遇到这种需求的?通常来说,你将查出来后将得到的值传给一个存储SQL语句的字符串变量,让相应执行SQL的函数来执行就可以了

sql 语句实现表内字段自动生成6位数的字符串,且六位数各不相同,请问...
然后通过函数来更新 create view getRandView as select substring(cast(rand() as char(10)),3,6) rnt go create function getRand()returns char(6)AS begin declare @r char(6)select @r=rnt from getRandView return @r end go update mytb set newstring=dbo.getRand()...

相似回答