sql執行字串

2022-02-16 10:15:01 字數 1428 閱讀 9451

1.使用execute來執行字串

--使用northwind資料庫

declare @sql nvarchar(200)

set @sql='select * from customers'

exec(@sql)

注意:

exec sql和exec(sql)是有區別的.

exec sql是執行儲存過程.

exec(sql)是執行sql字串語句.

2.使用exec sp_executesql來執行字串

--使用northwind資料庫

declare @sql nvarchar(200)

set @sql='select * from customers'

exec sp_executesql @sql

傳遞引數:
--使用northwind資料庫

--配置sql語句

declare @sql nvarchar(200)

set @sql='select * from customers where contacttitle=@contacttitle and companyname=@companyname'

--傳遞sql引數

declare @contacttitle nvarchar(30)

set @contacttitle='owner'

--執行sql字串

exec sp_executesql @sql,n'@contacttitle nvarchar(30),@companyname nvarchar(40)',

現在來看exec sp_executesql的語法:
sp_executesql [@stmt =] stmt

[

]

我們注意到該儲存過程的第乙個引數是用來設定引數型別的,後面相應的才跟著引數的值.

替換 sp_executesql 中的引數的能力,與使用 execute 語句執行字串相比,有下列優點: 

1.因為在 sp_executesql 中,transact-sql 語句的實際文字在兩次執行之間未改變,所以查詢優化器應該能將第二次執行中的 transact-sql 語句與第一次執行時生成的執行計畫匹配。這樣,sql server 不必編譯第二條語句。

2.transact-sql 字串只生成一次。

3.整型引數按其本身格式指定。不需要轉換為 unicode。 

SQL執行字串

1.使用execute來執行字串 使用northwind資料庫 declare sql nvarchar 200 set sql select from customers exec sql 注意 exec sql和exec sql 是有區別的.exec sql是執行儲存過程.exec sql 是執...

SQL執行字串

1.使用execute來執行字串 使用northwind資料庫 declare sql nvarchar 200 set sql select from customers exec sql 注意 exec sql和exec sql 是有區別的.exec sql是執行儲存過程.exec sql 是執...

sql 語句 exec 執行字串

create procedure dbo alldnn newspublish deletearticlebyarticle articleid nvarchar 200 as declare sql nvarchar 1000 set sql delete dbo.site news articl...