sqlexec
1. 資料庫的EXEC是什麼意思,應該怎麼用呢
sqlserver中
EXEC命令有兩種用法,一種是執行一個存儲過程,另一種是執行一個動態的批處理
1.使用系統存儲過程sp_executesql運行Unicode命令字元串
語法如下:
sp_executesql [@stmt=] stmt
[
{,[@params=] N'@parameter_name data_type [,...n]'}
{,[@param1=] 'value' [,...n]}
]
說明:必須先將各個包含所要運行的命令語句的Unicode字元串相加在一起,再交給系統存儲過程sp_executesql來運行,而不能在sp_executesql的語句中來相加各個命令字元串。
舉例如下:
declare @DBName nvarchar(20),
@Tbname nvarchar(20),
@SQLString nvarchar(500)
set @DBName=N'Northwind'
set @Tbname=N'Customers'
set @SQLString=N'USE '+@DBName+char(13) --char(13)換行
SET @SQLString=@SQLString+N'select * from '+@Tbname
--必須先將命令字元串組合完畢後再交給sp_executesql來運行
exec sp_executesql @SQLString
2.使用EXECUTE命令運行命令字元串
要使用EXECUTE命令來運行一個命令字元串的語法如下:
EXEC[UTE] ({@string_variable|[N] 'stql_string'} [+...n])
從語法看出,可以先將包含所要運行的命令的字元串賦給一個局部變數@string_variable,再使用EXECUTE命令來運行,或是直接使用EXECUTE命令去運行一個包含所要運行的命令語句的字元串。此外,您也可以將多個包含所要運行的命令語句的字元串相加在一起,再交給EXECUTE命令來一次運行。
例:
declare @sql nvarchar(4000)
set @sql='select * from [表] where email=''[email protected]'''
exec (@sql)
2. sql 中exec的意思
你去查一下sp_addextendedproperty這個存儲過程的定義嘛。exec就是執行存儲過程。
3. sql server 中的EXEC有什麼用!
exec函數族的作用為根據指定的文件名找到可執行文件,並用它來取代調用進程的內容,換句話說,就是在調用進程內部執行一個可執行文件。這里的可執行文件既可以是二進制文件,也可以是任何Linux下可執行的腳本文件。
exec函數族的函數執行成功後不會返回,因為調用進程的實體,包括代碼段,數據段和堆棧等都已經被新的內容取代,只留下進程ID等一些表面上的信息仍保持原樣,看上去還是舊的軀殼,卻已經注入了新的靈魂。只有調用失敗了,它們才會返回一個-1,從原程序的調用點接著往下執行。
(3)sqlexec擴展閱讀
使用exec函數族主要有兩種情況:
1、當進程認為自己不能再為系統和用戶做出任何貢獻時,就可以調用exec函數族中的任意一個函數讓自己重生。
2、如果一個進程想執行另一個程序,那麼它就可以調用fork函數新建一個進程,然後調用exec函數族中的任意一個函數,這樣看起來就像通過執行應用程序而產生了一個新進程(這種情況非常普遍)。
4. sqlserver中如何在用戶定義的函數里使用exec
這里我舉個例子,假如有一個函數dbo.NumAdd用來計算加法,那它可能是這樣的:
DROP FUNCTION dbo.NumAdd
GO
CREATE FUNCTION dbo.NumAdd
( @A SMALLINT,
@B SMALLINT
)
RETURNS INT
AS
BEGIN
DECLARE @Ret INT
SET @Ret = ISNULL(@A,0) + ISNULL(@B,0)
RETURN @Ret
END
你可以使用這樣的方式調用函數並得到返回值:
DECLARE @M INT
SET @M = dbo.NumAdd(500,700)
select @M
現在,把這個函數修改成第一種使用存儲過程的方式:
DROP Procere dbo.NumAdd1
GO
CREATE Procere dbo.NumAdd1
( @A SMALLINT,
@B SMALLINT,
@Ret INT OUTPUT
)
AS
BEGIN
SET @Ret = ISNULL(@A,0) + ISNULL(@B,0)
END
GO
那麼,你就可以通過下列的方法調用這個實際和函數dbo.NumAdd功能相同的存儲過程:
DECLARE @M1 INT
EXEC dbo.NumAdd1 500,600,@M1 OUTPUT
SELECT @M1
這種方法是對標量函數較好的處理方法,而且,一個存儲過程可以使用一個或者多個帶有OUTPUT的參數來返回值。
再看第二種方法修改為存儲過程的方式:
DROP Procere dbo.NumAdd2
GO
CREATE Procere dbo.NumAdd2
( @A SMALLINT,
@B SMALLINT
)
AS
BEGIN
DECLARE @Ret INT
SET @Ret = ISNULL(@A,0) + ISNULL(@B,0)
SELECT @Ret
END
GO
這樣,你就可以使用下面的方法來調用:
DECLARE @M2 INT
CREATE TABLE #Temp (Result INT)
INSERT #Temp EXEC dbo.NumAdd2 800,600
SELECT TOP 1 @M2 = Result FROM #Temp
DROP TABLE #Temp
SELECT @M2
列出的這兩種方法都是把函數改成存儲過程的方法,而且在存儲過程中可以使用EXEC、PRINT等函數中不能使用的內容。
這個解釋你明白了嗎?
5. EXEC SQL等等,這些都是什麼意思
這是嵌入SQL的語法,比如EC就是在C語言裡面增加SQL功能的,除了可以使用所有標準的C語言語法以外,可以使用EXEC SQL(或者$符號)開始的一行書寫SQL語句。
EXEC SQL include sqlca
包含一個文件,類似C、ASP的include語句,把那個文件sqlca的內容包含到當前位置
EXEC SQL BEGIN DECLARE SECTION
開始申明,下面的一段語句將是SQL系統的變數申明語句
EXEC SQL END DECLARE SECTION
申明語句結束
6. SQL語言EXEC作用
修改表刪除表,用的是update或者drop,這都是固定的sql語句的起始,比如ddl語句(create,drop,alter等),dml語句(insert ,delete,update,select),dcl語句等(commit,revoke,grant,rollback),這些語句都有固定的起始,看到這個語句sql解釋器就知道你要干什麼了。
那麼sp_help是什麼?是固定的起始嗎?明顯不是?那麼sp_help是什麼,應該是一個過程或者包一類的東西,那麼這個東西寫在這里要干什麼,明顯是要執行,那麼怎麼執行這個包或者過程,用execute,簡化寫為exec。
這里屬於單獨執行一個過程或者包,那麼肯定要加exec執行,exec是語句固定提示符,告訴程序他的下一個動作是「執行」
7. sql 中exec 的含義和用法
sql 中exec 的含義和用法
EXEC 好像是 EXECUTE 的簡寫。
可以用來執行一個存儲過程。
1> CREATE PROCEDURE HelloWorld AS
2> DECLARE
3> @testvalue1 AS VARCHAR(20),
4> @testvalue2 AS VARCHAR(20);
5> BEGIN
8. sql exec 問題
你好的!
從目前的信息來看沒辦法得知怎麼連接資料庫並使用!
請您聯系你的同事,或者詢問DBA 如何連接吧!
可能你們的sqlserver環境比較特殊
不過你可以嘗試把這三個信息拷貝到management studio
服務名:suz-db-77
用戶名:View001
密碼:Hello123
從上向下填寫一下看看是否能登錄吧
9. sql中 exec (@s)的用法
一般exec(@s)代表執行一句動態sql。
可參考以下例子,如代碼:
declare@svarchar(2000)
declare@tablenamevarchar(20)
set@tablename='test'
set@s='select*from'+@tablename+''
exec(@s)
結果:
注意:代碼中倒數第二句的寫法,也就是執行的動態sql語句,引用的動態名稱需要用引號及加號。最後一句的動態sql也要用括弧括起來。